2017-07-26 28 views
0

我有以下情况:VBA使用数据复制选定的单元格(Excel)。将它们粘贴在表格中的特定行中(Word)

在Excel电子表格中,有一些数据(姓名,电子邮件,电话号码,ID号码等等)相同的数据应该是填充到给定的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的集成VBA选项。你能帮忙吗?

+0

即使是初学者也必须从某处开始。所以,告诉我们你开始的地方,我们会在你的路上帮助你。 – Variatus

+0

请将其粘贴到您的原始问题中,以便我无需重新格式化即可阅读。谢谢。 – Variatus

回答

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中需要您在表格格式化方面非常专业,或者对文档外观的细节不敏感。

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

+0

Word文件包含已经准备好的模板/表格,格式化为表格:2列,多行。在左侧(第一列)是诸如“姓名”,“ID#”等的“标题”。右侧(第二列)是一些空白单元格。在那里我想填充已经复制的Excel数据。无论如何,谢谢你给我的线索。我肯定会尝试一下,并且会回答更多的问题。哈哈哈。 – VSE

+0

这就是要走的路!如果我的答案帮助了你,请接受它。这是我付出时间的方式。哈哈哈 – Variatus

相关问题