|
原帖由 iamgg 于 2010-6-21 10:42 发表
我想通过VBA来做,使WORD中的表格引用EXCEL的单元格值,但我不知道其语句怎么写
可以考虑使用书签或者QUTOE域来做。建议使用后者更简单一些。
如:
{ QUOTE “A1” } 表示该域位置引用自EXCEL 工作表的A1单元格,使用QUTOE域的好处是可以在域位置直接插入工作表单元格的值,也可以以域结果的形式体现单元格数值。另外,QUOTE域可以避免使用书签后的再次引用问题(书签再次引用时须使用REF域)等。
VBA既可以从WORD中操控EXCEL数据,也可以通过EXCEL 操控 WORD,主要方法均为(见FOR EACH语句)
Option Explicit
Sub Example()
Dim myExcel As Excel.Application
Dim myDoc As Word.Document
Dim mySheet As Excel.Worksheet
Dim myRange As Word.Range
Dim strAddress As String
Set myDoc = Word.ActiveDocument
Set myExcel = GetObject(, "Excel.Application")
Set mySheet = myExcel.ActiveSheet
Dim oField As Word.Field
For Each oField In Word.ActiveDocument.Fields
With oField
If .Type = Word.wdFieldQuote Then
strAddress = Replace$(.Code.Text, Chr$(32), Empty)
strAddress = Replace$(strAddress, "QUOTE", Empty, , , vbTextCompare)
strAddress = Replace$(strAddress, Chr$(34), Empty)
.Code.Text = "QUOTE " & Chr$(34) & mySheet.Range(strAddress).Value & Chr$(34)
.Update '''可以到最后全文档所有域更新
'''以下方法直接在域所在位置插入单元格数据
' Set myRange = .Result
' myRange.Delete
' myRange.Text = mySheet.Range(strAddress).Value
End If
End With
Next
End Sub |
|