【问题标题】:Excel - VBA code to export cell data to word documentExcel - 将单元格数据导出到 Word 文档的 VBA 代码
【发布时间】:2017-03-01 01:37:11
【问题描述】:

我在使用一些 VBA 代码时遇到了一些问题。我想要做的是从 Excel 单元格中导出代码并将它们导入到文本字段中的 Word 文档中。

这是我的代码。

Sub test()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Dim objWord As Object
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    objWord.Documents.Open "C:\Users\Acer Windows 7\Desktop\test.docx"
    With objWord.ActiveDocument
      .Text1.Value = ws.Range("A1").Value
      .Text2.Value = ws.Range("B1").Value
      .Text3.Value = ws.Range("C1").Value
    End With
End Sub

此代码采用静态单元格并将它们导出到 Word 文档中。我需要的是每行上的链接或按钮,它将从所述行中导出该代码并将它们放入 Word 文档中。

例如,如果我单击第 4 行上的链接/按钮,它将从 C4、E4、F4 获取数据

这可能吗?我不知道该怎么做。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    如果有很多行,为每行添加一个按钮可能会有点麻烦。我建议只使用 1 个按钮来导出所选行。所以你只需要维护 1 个按钮/sub 而不是很多。

    Cells(Row, Column)可以在这里使用。

    Sub test()
        Dim ws As Worksheet
        Set ws = ThisWorkbook.Sheets("Sheet1")
        Dim objWord As Object
        Set objWord = CreateObject("Word.Application")
        objWord.Visible = True
        objWord.Documents.Open "C:\Users\Acer Windows 7\Desktop\test.docx"
        With objWord.ActiveDocument
          .Text1.Value = ws.Cells(Selection.Row, 1).Value
          .Text2.Value = ws.Cells(Selection.Row, 2).Value
          .Text3.Value = ws.Cells(Selection.Row, 3).Value
        End With
    End Sub
    

    上面的代码总是使用被选中的单元格行。因此,首先选择要导出的行,然后按下运行 test() 的按钮。

    【讨论】:

    • 当我现在出于某种原因运行该代码时,我会出现一个框,并显示“对象不支持此属性或方法”我以前从未见过这种情况
    • 我忘记添加.Value 抱歉。我编辑了我的答案。
    • 没关系。我很感激帮助。我在每个选择语句的末尾添加了 .Value。我似乎仍然遇到同样的错误。当我按下按钮时,它会打开 word 文档并引发错误。我想知道是不是因为我现在使用的是 word 2016
    • 好的,我没有测试代码,因为我认为您发布的代码可以正常工作(除了它只能导出第 1 行)。但如果它不起作用,那么在这里很难找到一些帮助。
    • 所以我终于有了一些可以工作的代码。 Selection.Row 很棒。我只有一个问题。我可以用它选择多行吗?