VBA使用数据复制选定的单元格(Excel)。将它们粘贴到表格中的特定行(Word)

时间:2017-07-26 08:38:16

标签: vba excel-vba word-vba excel

我有以下情况:

在Excel电子表格中,有一些数据(姓名,电子邮件,电话号码,ID号等)应该将相同的数据填充到给定的Word表单中(它在word文件中存在保护,允许来自a要填写的表格。我想复制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选项。你可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

你的开始不是最好的开始。请尝试继续使用以下代码设置的路径。

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中选择工具 - >引用并启用" Microsoft Word xx.x对象库"。现在,您可以声明Word和Excel对象。 Excel将默认设置Excel。因此,如果您的意思是Word,请在声明中提及Word

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

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

假设您的Word文档中有一个表,您现在可以开始将数据从数组写入表中。不清楚你是否已经拥有该表或者只是想在此时开始制作它。

另一种方法是复制Excel选择并将其作为表格粘贴到Word文档中。所有这些操作的基础结构都是相同的,即我在上面为您勾画的那个,除非您想要粘贴表格,否则您不需要该数组。但是,请允许我警告您,将Excel表格粘贴到Word会让人感到很麻烦,因为它们会转移几乎不兼容的格式。将Excel表格粘贴到Word中要么您需要在表格格式方面非常专业,要么对文档外观的精细点不敏感。

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