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
我有一个 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