Имя: Пароль:
1C
 
Выбрать файл
0 Snik_666
 
04.08.07
23:32
Как бы сюда подцепить чтобы открылось окно и выбрать файл ?
xl = Новый COMОбъект("Excel.Application");
??
rows=xl.ActiveSheet.UsedRange.Rows.Count;
1 Волшебник
 
модератор
04.08.07
23:34
обычный объект ДиалогВыбораФайла
2 jbond
 
04.08.07
23:55
А какими средствами выбирать файл? Можно открыть и диалог Офиса.
3 jbond
 
04.08.07
23:56
'Declare a variable as a FileDialog object.
   Dim fd As FileDialog

   'Create a FileDialog object as a File Picker dialog box.
   Set fd = Application.FileDialog(msoFileDialogFilePicker)

   'Declare a variable to contain the path
   'of each selected item. Even though the path is aString,
   'the variable must be a Variant because For Each...Next
   'routines only work with Variants and Objects.
   Dim vrtSelectedItem As Variant

   'Use a With...End With block to reference the FileDialog object.
   With fd

       'Use the Show method to display the File Picker dialog box and return the user's action.
       'The user pressed the button.
       If .Show = -1 Then

           'Step through each string in the FileDialogSelectedItems collection.
           For Each vrtSelectedItem In .SelectedItems

               'vrtSelectedItem is aString that contains the path of each selected item.
               'You can use any file I/O functions that you want to work with this path.
               'This example displays the path in a message box.
               MsgBox "The path is: " & vrtSelectedItem

           Next vrtSelectedItem
       'The user pressed Cancel.
       Else
       End If
   End With

   'Set the object variable to Nothing.
   Set fd = Nothing
4 Snik_666
 
04.08.07
23:57
Точно а я все ищу в документации ОткрытьФайл!
только теперь неполучается фильтр расширений и метод Open()

xl = Новый COMОбъект("Excel.Application");
   
   Режим = РежимДиалогаВыбораФайла.Открытие;
   ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
   ДиалогОткрытияФайла.ПолноеИмяФайла = "";
   Фильтр = "Текст (*.xls|*.xlsx) |*.xls|*.xlsx";
   ДиалогОткрытияФайла.Фильтр = фильтр ;
   ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
   ДиалогОткрытияФайла.Заголовок = "Выберите файл импорта";
   Если ДиалогОткрытияФайла.Выбрать() Тогда
       МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
       Для каждого ИмяФайла Из МассивФайлов Цикл
           ВыбФайл = Новый Файл(ИмяФайла);
       КонецЦикла;
   Иначе
       Предупреждение("Файл не выбран!");
   КонецЕсли;
   
   xl.Workbooks.Open(ВыбФайл);
5 Snik_666
 
04.08.07
23:58
(0)Точно!
6 Snik_666
 
05.08.07
00:18
{РегистрСведений.Телефоны.Форма.ФормаСписка(29)}: Ошибка при вызове метода контекста (Open): Типы не совпадают (0)
   xl.Workbooks.Open(ВыбФайл);
по причине:
Типы не совпадают (0)
7 acsent
 
05.08.07
00:19
Выю файл имеет тип файл, а не строка
8 Wladimir_spb
 
05.08.07
00:20
(6) А что такое ВыбФайл? :)
9 Snik_666
 
05.08.07
00:28
Если я делаю
Сообщить(ИмяФайла+"; Размер = "+ВыбФайл.Размер());
   xl.Workbooks.Open(ВыбФайл);

То
D:\Город.xlsx; Размер = 5 071 684
файл точно есть

а потом опять Несовпадения типов, непойму как исправить
10 Wladimir_spb
 
05.08.07
00:31
xl.Workbooks.Open(ИмяФайла);
11 Snik_666
 
05.08.07
00:33
Спасибо!