将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