Страница: 1 |
Страница: 1 |
Вопрос: Dialogs
Добавлено: 20.07.08 01:39
Автор вопроса: Jktu | ICQ: 381648295
Ещё задачка.
При запуске кода мне нужно, чтобы он брал информацию из других экселевских файлов. То есть:
Открывается окно xlDialogOpen (может, не так надо?), выбираю там файл и хочу, чтобы код запомнил путь к этому файлу и брал там информацию.
Примерно так:
'...
Answer = Application.Dialogs(xlOpenDialog).Show
Но вот незадача - строковой переменной Answer вдруг присваивается булево значение True (после нажатия кнопки "Открыть"). А Path нигде не фигурирует...
В связи с этим два вопроса:
Каким диалогом пользоваться, чтобы показать коду путь к файлу (D:\Оклады)?
Как вытащить информацию из книги XL, не открывая её?
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Jasmin
Вопросов: 23
Ответов: 417
Профиль | | #1
Добавлено: 20.07.08 20:36
1.
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = False
.InitialFileName = "Оклады.xls" 'если известно имя файла
If .Show = -1 Then 'признак того, что был выбран какой-то файл
Answer = .SelectedItems(1) 'полный путь к файлу
End If
End With
If Not IsEmpty(Answer) Then
MsgBox Answer
'Ваш код
End If
End Sub
2.
Dim arg As String
If Right(path, 1) <> "\" Then path = path & "\"
If Dir(path & file) = "" Then
GetValueFromClosed = "File Not Found"
Exit Function
End If
arg = Chr(39) & path & "[" & file & "]" & sheet & Chr(39) & "!" & Range(ref).Address(ReferenceStyle:=xlR1C1)
GetValueFromClosed = Application.ExecuteExcel4Macro(arg)
End Function
Sub GetValueFromClosedWorkbook()
'можно указать и диапазон, но тогда нужен разбор значений по ячейкам. А пока передается значение 1-й ячейки
a = GetValueFromClosed(":\Temp\", "Данные закрытой книги.xls", "Sheet1", "A2"
b = GetValueFromClosed(":\Temp\", "Данные закрытой книги.xls", "Sheet2", "B2"
MsgBox "Данные из 'D:\Temp\[Данные закрытой книги.xls]' Лист 'Sheet1' Ячейка 'A2' -> a = " & a & _
Chr(10) & Chr(13) & _
"Данные из 'D:\Temp\[Данные закрытой книги.xls]' Лист 'Sheet2' Ячейка 'B2' -> b = " & b
End Sub
Номер ответа: 2
Автор ответа:
Jktu
ICQ: 381648295
Вопросов: 8
Ответов: 32
Профиль | | #2
Добавлено: 23.07.08 23:02
Спасибо огромное!
Это самый исчерпывающий ответ, который я встречал в своей жизни!