将variables从XLSM传递到embedded的DOCM
我有一个embedded的Word文档(*.docm)
在我的Excel工作表中。
Word文档包含一个table
,它与Excel的WorkSheet
Table
中的相应Table
之间有关系。
我想要在Document_Open
事件中dynamic地设置embedded式Word文档中表格行的数量,以及其涉及的工作表中的波纹pipe值:
ThisWorkbook.Worksheets("Sheet1").ListObjects("Salary").ListRows.Count
如何在Excel(macros容器文档)和其embedded的macros容器文档之间传递值? – 如果它是上述大胆的问题的正确答案或另一个解决scheme?
如果有另一个解决scheme的答案,请注意封面需要:
使用源数据中的相应值填充目标表(即在embedded式文档文档中)的单元格位于Worksheet?的父表中,而不是自动生成具有来自macros容器embedded的Word文档的Document_Open事件的字段。
我build议embedded.docx文件,以避免macros每次打开时禁用警报,并将所有代码放在Excel VBA项目中。 下面是示例,显示如何从Excel VBA更改embedded的Word文档中的行数:
Sub ChangeRowsCount() Dim n As Long With ThisWorkbook.Worksheets("Sheet1") n = .ListObjects("Table1").ListRows.Count With .Shapes("Object 1") Select Case True Case .Type <> msoEmbeddedOLEObject MsgBox "Invalid OLE Object type" Case InStr(1, .OLEFormat.progID, "Word.Document", vbTextCompare) <> 1 MsgBox "Invalid Application" Case Else .OLEFormat.Object.Verb xlVerbOpen With .OLEFormat.Object.Object.Parent ' Word.Application With .ActiveDocument.Tables(1).Rows Do While .Count <> n If .Count > n Then .Item(.Count).Delete Else .Add Loop End With .Quit End With .Select MsgBox "Success" End Select End With End With End Sub