Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将变量从XLSM传递到嵌入式DOCM_Vba_Excel_Ms Word - Fatal编程技术网

Vba 将变量从XLSM传递到嵌入式DOCM

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文档之间传递值-如果这是上述大胆问题的正确答案,还是另一种解决方案 如果有另

我在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方法、传递变量或更好的方法来实现这一点?在我扩展我的上述问题时,请扩展你关于这件事的回答。