Vba 将变量从XLSM传递到嵌入式DOCM
我在Excel工作表中嵌入了Word文档Vba 将变量从XLSM传递到嵌入式DOCM,vba,excel,ms-word,Vba,Excel,Ms Word,我在Excel工作表中嵌入了Word文档(*.docm) Word文档包含一个表,该表与Excel的工作表中相应的表之间存在关系 我希望嵌入式Word文档中的表行数在文档_Open事件中以下面的值从其涉及的工作表中动态设置: ThisWorkbook.Worksheets("Sheet1").ListObjects("Salary").ListRows.Count 如何在Excel(宏容器文档)及其嵌入的宏容器word文档之间传递值-如果这是上述大胆问题的正确答案,还是另一种解决方案 如果有另
(*.docm)
Word文档包含一个表
,该表与Excel的工作表中相应的表
之间存在关系
我希望嵌入式Word文档中的表行数在文档_Open
事件中以下面的值从其涉及的工作表中动态设置:
ThisWorkbook.Worksheets("Sheet1").ListObjects("Salary").ListRows.Count
如何在Excel(宏容器文档)及其嵌入的宏容器word文档之间传递值-如果这是上述大胆问题的正确答案,还是另一种解决方案
如果有另一个解决方案答案,请注意:
使用源数据中的相应值填充目标表(即嵌入word文档中)单元格,这些单元格位于工作表?的父表中?,与从宏容器嵌入word文档中自动生成包含文档打开事件的字段相同。我建议嵌入.docx文档,以避免每次打开时都出现宏禁用警报,并将所有代码放在Excel VBA项目中。以下示例显示了如何从Excel VBA更改嵌入式Word文档中的行数:
子变更行目录()
长
使用此工作簿。工作表(“表1”)
n=.ListObjects(“表1”).ListRows.Count
带有.Shapes(“对象1”)
选择Case True
Case.Type msoEmbeddedOLEObject
MsgBox“无效的OLE对象类型”
案例说明(1,.OLEFormat.progID,“Word.Document”,vbTextCompare)1
MsgBox“无效应用程序”
其他情况
.OLEFormat.Object.Verb xlVerbOpen
使用.OLEFormat.Object.Object.Parent的Word.Application
带有.ActiveDocument.Tables(1)行
请稍等
如果.Count>n,则.Item(.Count).Delete-Else.Add
环
以
退出
以
.选择
MsgBox“成功”
结束选择
以
以
端接头
非常感谢;因此,我扩展了问题:然后,我们如何用源数据中的相应值填充目标表(即嵌入word文档)单元格,这些单元格位于父表工作表中?,使用Document\u Open
events从嵌入式word文档自动生成字段。@MGae2M在回答中,我建议不要使用VBA和嵌入式文档中的事件,而是使用Excel VBA。那么,我们如何填充目标表(即嵌入式word文档中的目标表)源数据中具有相应值的单元格位于源表中位于工作表中?似乎需要从Excel模块运行一些Word方法,如Selection.TypeText Text:=…
,或者更好地在嵌入式Word文档中填充表格。我们如何在Excel模块中使用Word方法、传递变量或更好的方法来实现这一点?在我扩展我的上述问题时,请扩展你关于这件事的回答。