2015-09-03 6 views
1

У меня есть рабочий лист Excel с некоторыми данными. Каждая ячейка на листе имеет определенное имя.Word VBA - вставить данные из excel с определенным именем

У меня также есть документ с документами с закладками. Каждая закладка имеет то же имя, что и ячейка в excel.

У меня есть код VBA в слове. Прямо сейчас я пытаюсь сделать 1. перейдите к каждой закладке в слове 2. перейдите в excel и перейдите в ячейку с тем же определенным именем. 3. вставьте данные в ячейку в расположение закладки в слове.

Вот что у меня есть:

Dim wb As Excel.Workbook 
Dim excelPath As String 
Dim numBM As Integer 
Dim countBM As Integer 
Dim currentBM As String 

numBM = ActiveDocument.Bookmarks.Count 

excelPath = getFilePath() 'separate function to get the location of the excel file 

Set wb = Excel.Workbooks.Open(excelPath) 

For countBM = 1 To numBM 
    currentBM = ActiveDocument.Bookmarks(countBM).Name 

    ActiveDocument.Bookmarks(currentBM).Range.Text = wb.???????? 
Next 

я могу получить эту работу, если я использую:

ActiveDocument.Bookmarks(currentBM).Range.Text = wb.Worksheets("Sheet1").Range(currentBM) 

, но я не хочу, чтобы ссылаться на рабочий лист. Я хочу только ссылку на камеру.

Я знаю, что должно быть простое решение!

ответ

0

Существует, действительно, простое решение. Если вы назвали ячейки, вы можете получить доступ к коллекции Names в объекте Excel Application. Например, если вы хотите получить диапазон (или значение в вашем случае) специально названной ячейки в Excel, вы можете сделать следующее:

Excel.Names("RangeName").RefersToRange.Value 
+0

Это именно то, что мне нужно! Всю ночь я пытался работать с членом .RefersTo. Я никогда не пробовал .RefersToRange – MightyMouseZ

0

Я не хочу, чтобы ссылаться на рабочий лист

Ну, вы должны. Просто сделайте это сразу, и вам нужно будет только один раз обратиться к нему:

Dim ws As Excel.Worksheet 
'... 
Set ws = Excel.Workbooks.Open(excelPath).Sheets(1) 
ActiveDocument.Bookmarks(currentBM).Range.Text = ws.Range(currentBM) 

И ваш дядя Боба.

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

  • Нет связанных вопросов^_^