【问题标题】:VBA Copy selected cells with data (Excel). Paste them in specific row in a table (Word)VBA 使用数据复制选定的单元格 (Excel)。将它们粘贴到表格中的特定行(Word)
【发布时间】:2017-07-26 08:38:15
【问题描述】:

我有以下情况:

在 Excel 电子表格中,有一些数据(姓名、电子邮件、电话号码、身份证号等)应将相同的数据填充到给定的 Word 表单中(它对 Word 文件存在保护,允许从一个需要填写的表格)。我想从 Excel 文件中复制现有数据并将其粘贴到 Word 文件中的适当位置(例如,我的意思是要复制带有 ID 号的单元格并将其粘贴到带有标题 ID 号的行中)。

对不起,如果这是一个简单的问题,但我是 VBA 开发的初学者,我目前的知识仅限于 Excel 操作。

提前谢谢你!

我开始:

'Copy 
Set objSelection = Selection 
Selection.Copy 
'Paste the copied 
Set objTempWorkbook = Excel.Application.Workbooks.Add(1) 
Set objTempWorksheet = objTempWorkbook.Sheets(1) 
'Save the temp HTML 
Set objFileSystem = CreateObject("Scripting.FileSystemObject") 
strTempHTMLFile = objFileSystem.GetSpecialFolder(2).Path & "\Temp for Excel" & Format(Now, "YYYY-MM-DD hh-mm-ss") & ".htm" 
Set objTempHTMLFile = objTempWorkbook.PublishObjects.Add(xlSourceRange, strTempHTMLFile, objTempWorksheet.Name, objTempWorksheet.UsedRange.Address) 
objTempHTMLFile.Publish (True)

因此,使用此代码,我正在选择所需的带有数据的 Excel 单元格,复制它们,将它们粘贴到临时 HTML 文件中。 在这里我提出了问题——如何继续说我想将数据传播到该 word 文件中的特定表行。我没有使用过 Word 的集成 VBA 选项。你能帮忙吗?

【问题讨论】:

  • 即使是初学者也必须从某个地方开始。所以,告诉我们你从哪里开始,我们会在你的路上为你提供帮助。
  • 请将其粘贴到您的原始问题中,这样我就无需重新格式化即可阅读。谢谢。

标签: vba excel ms-word


【解决方案1】:

你的开始可能不是最好的。请尝试在以下代码设置的路径上继续。

Sub VSE()

    ' Word declarations:
    Dim WdApp As Word.Application
    Dim Doc As Word.Document

    ' Excel declartions:
    Dim Fn As String
    Dim RngS As Range                           ' Source
    Dim Arr As Variant

    ' in future you may like to specify the range more elegantly.
    ' So, declare a range which you can later specify in any way you like:
    Set RngS = Selection
    Arr = RngS.Value

    Fn = "C:\My Documents\TestDoc.docx"
    Set WdApp = New Word.Application
    Set Doc = WdApp.Documents.Open(Fn)
End Sub

这个想法是您从 Excel 开始,在 Excel 中工作,然后让 Excel 在 Word 中做一些烦躁的事情。因此,您需要访问 MS Word DLL。从 Excel 的 VBE 中选择 Tools -> References 并启用“Microsoft Word xx.x Object Library”。现在您可以声明 Word 和 Excel 对象。 Excel 将默认假定 Excel。因此,如果您指的是 Word,请在声明中提及 Word

您声明的第一个对象是一个 Word 应用程序,以及一个要在该应用程序中运行的文档。然后,您需要一个要打开的文档的文件名。获得文件名后,您可以打开文档(也许可以让它在那里,在背景中不可见,但从不露面,除非现在您可能想看到它)。

您需要以可传输格式(即数组)从 Excel 中获取数据。因此,您声明要从中复制的 Excel 范围,并将该范围的值写入您声明的数组。

假设您的 Word 文档中有一个表格,您现在可以开始将数组中的数据写入表格。不清楚您是否已经有桌子,或者现在只想开始制作。

另一种方法是复制 Excel 选择并将其作为表格粘贴到 Word 文档中。所有这些操作的基础结构都是相同的,即我在上面为您绘制的那个,除了如果您想粘贴表格则不需要数组。但是让我警告您,将 Excel 表格粘贴到 Word 会让人头疼,因为传输几乎不兼容的格式。将 Excel 表格粘贴到 Word 中要么要求您非常擅长表格格式设置,要么对文档外观的细节不敏感。

无论如何,我希望这能让你朝着正确的方向开始。

【讨论】:

  • Word 文件包含已经准备好的模板/表格,格式为表格:2 列,多行。左侧(第 1 列)是“标题”,例如“名称”、“ID #”等。右侧(第 2 列)是一些空白单元格。在那里我想填充已经复制的 Excel 数据。不管怎样,谢谢你给我的线索。我会试一试,我肯定会带着更多问题回到你身边。哈哈哈。
  • 就是这样!如果我的回答对你有帮助,请采纳。这是支付我时间的方式。哈哈哈
猜你喜欢
  • 2018-06-25
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多