以下是引用fanny_6在2007-8-17 0:10:02的发言:我估计可以用嵌套域来解决,用filename域得到完整路径,然后用公式域转换成自己需要的路径 但是总是实现不了 Word不用VBA无法完成。 filename域看似可以做到,但是无法解决路径中的“\\”问题,而且也没有办法仅取得Path或者进行替换。 借助插入的Excel工作薄对象,由于其是OLE方式的,无法取得文件名,我使用了CELL函数,Get.Document(1)宏表函数、Get.WorkBook(16)宏表函数以及SUBSTITUTE(GetPath,"\","\\")等等方法包括再次粘贴链接的方式均无果而终。 使用VBA吧,况且,你的EXCEL中也用VBA,将以下代码复制并粘贴于目标文档的ThisDocument类模块中即可。 '* +++++++++++++++++++++++++++++ '* Created By BANGONG@ExcelHome 2007-8-17 5:40:48 '仅测试于System: Windows NT Word: 11.0 Language: 2052 '№ 0253^The Code CopyIn [ThisDocument-ThisDocument]^' '* ----------------------------- Option Explicit
Private Sub Document_Open() Dim wdField As Field, wdRange As Range Dim wdPath As String, myText As String On Error Resume Next With Me wdPath = .Path myText = wdPath & "\try.xls" If Dir(myText, vbDirectory) = "" Then MsgBox "Word没有找到指定的Excel工作薄,链接更新失败!", vbInformation Exit Sub Else myText = "LINK Excel.Sheet.8 """ & myText & "" myText = Replace(myText, "\", "\\") myText = myText & """ ""清单(copy到word)!myRange"" \a \f 4 \r" ' Debug.Print myText If .Fields.Count = 0 Then Set wdRange = .Range(0, 0) Set wdField = .Fields.Add(wdRange, wdFieldEmpty, myText, True) Else Set wdField = .Fields(1) wdField.Code.Text = myText End If wdField.Update End If End With End Sub '----------------------
|