Word VBA - 从 excel 插入具有已定义名称的数据

Word VBA - insert data from excel with defined name

我有一个 excel 工作表,里面有一些数据。工作表中的每个单元格都有一个定义的名称。

我还有一个定义了书签的word文档。每个书签都与 excel 中的一个单元格同名。

我的 VBA 代码在 word 中。现在我正在尝试 1.在word中找到每个书签 2. 转到 excel 并转到具有相同定义名称的单元格 3、将单元格中的数据插入到word中书签所在的位置。

这是我拥有的:

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)

但我不想引用工作表。我只想引用单元格。

我知道一定有一个简单的解决方案!

I don't want to reference the worksheet

好吧,你必须这样做。马上做,你只需引用一次:

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

鲍勃是你的叔叔。

确实有一个简单的解决方案。如果您已命名单元格,则可以访问 Excel Application 对象中的 Names 集合。例如,如果您想检索 Excel 中特定命名单元格的范围(或您的情况下的值),您可以执行以下操作:

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