0

让我先说我对 VBA 很陌生,因此感谢任何帮助。有人联系我,看我是否可以创建基本的自动化水平。需要通过按钮将数据从 Excel 导出到 Word。

最终目标是在 excel 中包含数据字段,例如“名字”“姓氏”“地址”“联系电话”。然后选择一个人的整行(B1,B2,B3,B4),当按下宏按钮时,它会打开一个word文档并将字段预填充到文档中。是预填信件发送,此人还表示,邮件合并没有做他们需要的。下面是我正在使用的。

Sub ExcelToWord()
    Dim wordApp As Word.Application
    Dim mydoc As Word.Document

    Set wordApp = New Word.Application
    wordApp.Visible = True
    Set mydoc = wordApp.Documents.Add()
    ThisWorkbook.Worksheets("sheet1").Range("").Copy
    mydoc.Paragraphs(1).Range.PasteExcelTable _
                               LinkedToExcel:=False, _
                               WordFormatting:=False, _
                               RTF:=False
    mydoc.SaveAs2 "MyDoc"
End Sub

这允许特定范围,例如 (A2,B3) 但不是“选定”区域。如果这是非常基本的,我深表歉意,但正如我所说,我并没有真正使用 VBA。

4

2 回答 2

0

您似乎需要使用Application.Selection属性,该属性返回活动工作表上当前选定对象的 Application 对象。

Sub ExcelToWord()
    Dim wordApp As Word.Application
    Dim mydoc As Word.Document

    Set wordApp = New Word.Application
    wordApp.Visible = True
    Set mydoc = wordApp.Documents.Add()    
    
    ThisWorkbook.Worksheets("sheet1").Activate()
    Application.Selection.Copy()
    
    mydoc.Paragraphs(1).Range.PasteExcelTable _
                               LinkedToExcel:=False, _
                               WordFormatting:=False, _
                               RTF:=False
    mydoc.SaveAs2 "MyDoc"
End Sub
于 2021-12-19T17:44:10.113 回答
0

如果我理解您的问题,我认为您只需要替换:

ThisWorkbook.Worksheets("sheet1").Range("").Copy  

经过:

Selection.Copy
于 2021-12-19T16:39:39.487 回答