【问题标题】:Pass variable from XLSM to embedded DOCM将变量从 XLSM 传递到嵌入式 DOCM
【发布时间】:2017-08-28 09:18:25
【问题描述】:

我的 Excel 工作表中有一个嵌入的 Word 文档 (*.docm)。

Word 文档包含一个table,与Excel 的WorkSheet 中对应的Table 有关系。

我希望在 Document_Open 事件中动态设置嵌入 Word 文档中的表格行数,并从其涉及的 Worksheet 中获取以下值:

ThisWorkbook.Worksheets("Sheet1").ListObjects("Salary").ListRows.Count

如何在 Excel(宏容器文档)与其嵌入的宏容器 word 文档之间传递值? - 如果它是上述大胆问题的正确答案 - 或其他解决方案?

如果有其他解决方案的答案,请注意覆盖需要:

使用来自源数据的相应值填充目标表(即在嵌入的 Word 文档中)单元格在 Worksheet 的父表中?,与使用宏容器嵌入的 Word 文档中的 Document_Open 事件自动生成字段相同。

【问题讨论】:

    标签: vba excel ms-word


    【解决方案1】:

    我建议嵌入 .docx 文档以避免每次打开宏时都会发出警报,并将所有代码放在 Excel VBA 项目中。这是一个示例,展示了如何从 Excel VBA 更改嵌入 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
    

    【讨论】:

    • 谢谢;因此我扩展了问题:然后,我们如何使用来自Worksheet 的父Table 中的源数据中的相应值填充目标表(即在嵌入的word 文档中)单元格?,反对自动生成字段Document_Open 来自嵌入 Word 文档的事件。
    • @MGae2M 在回答中我建议不要使用嵌入文档中的 VBA 和事件,而是使用 Excel VBA。
    • 那么,我们如何用源数据中的相应值填充目标表(即嵌入的 Word 文档)单元格在源 Table 中是在 Worksheet 中?似乎需要从 Excel 模块运行一些 Word 方法作为 Selection.TypeText Text:= ... 或更好地填充嵌入 Word 文档中的表格。我们如何在 Excel 模块中使用 Word 方法、传递变量或更好的方法呢?当我扩展上述问题时,请扩展您对此事的回答。
    猜你喜欢
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    相关资源
    最近更新 更多