到目前为止,我已经能够激活嵌入在Excel中的Word文档,但无法修改表格的preferredwidth。如何通过Excel VBA访问此属性?
这是我到目前为止所拥有的
Sub ok()
Set WDObj = Sheets("Sheet1").OLEObjects("Object 4")
WDObj.Activate
WDObj.ActiveDocument.Tables(1).PreferredWidthType = wdPreferredWidthPercent
WDObj.ActiveDocument.Tables(1).PreferredWidth = 95
End Sub
答案 0 :(得分:0)
要修改嵌入式Word文档的内容,首先需要访问嵌入式应用程序,然后是文档本身。一旦代码访问了OLEObject
,它就需要实际的Object
,通过它可以寻址应用程序和文档。
请注意,为OLE对象分配一个名称而不是依靠Excel生成的名称可能是方便的。如果添加了其他对象或删除了其他对象,则此类名称会发生变化的讨厌趋势。明确分配的任何名称都将保持不变。只需在工作表上运行一次(基于完整的示例代码):
ws.OLEObjects("Object 4").Name = "WordDoc" 'for example, can be any string you prefer
然后,如果您决定执行此操作,则在完整代码中为ws.OLEObjects("WordDoc")
在过程结束时,行ws.Cells(1, 1).Select
通过在工作表上选择一个单元格来停用嵌入的对象。如果要让Word文档处于活动状态以供用户使用,只需删除该行即可。
Sub ok()
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim doc As Object 'Word.Document
Dim wdObj As Object, wdTable As Object 'Word.Table
Set wb = ActiveWorkbook
Set ws = wb.Sheets("Sheet1")
Set wdObj = ws.OLEObjects("Object 4")
wdObj.Activate
Set doc = wdObj.Object.Application.ActiveDocument
Set wdTable = doc.Tables(1)
wdTable.PreferredWidthType = 2 ' Word.WdPreferredWidthType.wdPreferredWidthPercent
wdTable.PreferredWidth = 95
ws.Cells(1, 1).Select
End Sub