2016-06-13 3 views
2

То, что я хочу сделать, это:Открыть Excel из Слова с помощью FileDialog

  • Нажмите кнопку в моем документ Microsoft Word, он подскажет мне, чтобы выбрать документ в файловом проводнике.
  • Выберите мой документ соответствующие поля в моем слове doc будут заполнены.
  • Это будет заполнено на основе информации в документе (месяце) и с использованием функции Match, оно будет искать правильную строку/столбец в выбранном документе excel и вернуть значение.

Я застрял на участке FileDialog(msoFileDialogFilePicker) моего кода ниже.

Для целей моего документа я не могу войти в прямой путь к файлу, путь к файлу необходимо взять из функции FileDialog (или что-то подобное).

Я также пробовал GetOpenFilename. Я не уверен, как это сделать. Мой код в настоящее время открывает FileDialog и позволяет мне выбрать файл, но я не могу передать путь к файлу на моей строке colNum1.

Ошибка, которую я получаю, это Ошибка времени выполнения '91'. Переменная объекта или С заблокированной переменной.

Я открыт для предложений, и любая помощь очень ценится.

Sub KPI_Button() 
' 
' KPI_Button Macro 
Dim objExcel As New Excel.Application 
Dim exWb As Excel.Workbook 
Dim strFile As String 
Dim Doc As String 
Dim Res As Integer 
Dim dlgSaveAs As FileDialog 

Doc = ThisDocument.Name 

Set dlgSaveAs = Application.FileDialog(msoFileDialogFilePicker) 
Res = dlgSaveAs.Show 

colNum1 = WorksheetFunction.Match("(Month)", ActiveWorkbook.Sheets("Sheet1").Range("A2:I2"), 0) 

ThisDocument.hoursworkedMonth.Caption = exWb.Sheets("Sheet1").Cells(3, colNum1) 

exWb.Close 
Set exWb = Nothing 
End Sub 

ответ

0

попробовать диалог, который определяет расширение Excel как таковые:

Sub GetNames() 
With Application.FileDialog(msoFileDialogFilePicker) 
    .AllowMultiSelect = False 
    .Filters.Clear 
    .Filters.Add "Excel files", "*.xls*", 1 
If .Show = True Then 
    If .SelectedItems.Count > 0 Then 
    'this is the path you need 
    MsgBox .SelectedItems(1) 
     Else 
    MsgBox "no valid selection" 
    End If 
End If 
End With 
End Sub 
+0

Я ввел это, но вместо того, чтобы физически показывая путь на экране мне нужно пройти путь к файлу для таблицы на последние два раздела моего кода выше: 'colNum1 = WorksheetFunction.Match ("(за месяц)", ActiveWorkbook.Sheets ("Лист1") Диапазон (. "A2: I2"), 0) ThisDocument.hoursworkedMonth .Caption = exWb.Sheets ("Sheet1"). Ячейки (3, colNum1) ' – Krumblebee

+0

@Krumblebee эта строка дает вам полный путь '.SelectedItems (1)', который вы можете применить к своей функции. – brettdj

+0

Я хочу открыть файл, указанный при использовании функции FIleDialog. Мне не нужно видеть путь к файлу, а затем разрешить мне вводить его в мой код. Я хочу, чтобы путь к файлу был передан в строку кода в моем VBA. Все, что мне нужно сделать, это открыть мой выбранный файл, используя функцию диалога с файлом, а затем операции, которые у меня есть, могут выполняться в выбранном файле. Выбранный файл всегда будет отличаться, поэтому путь к файлу всегда будет меняться, поэтому я не могу войти в путь файла каждый раз. Надеюсь, я понял, что я пытаюсь сделать. Спасибо за помощь до сих пор. – Krumblebee

Смежные вопросы