繁体   English   中英

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

[英]VBA Copy selected cells with data (Excel). Paste them in specific row in a table (Word)

我有以下情况:

在Excel Spreadsheet中,有一些数据(名称,电子邮件,电话号码,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文件中的特定表行。 我没有使用Word的集成VBA选项。 你能帮忙吗?

您的开始并不是最好的开始。 请尝试继续执行以下代码设置的路径。

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中要么要求您在表格格式方面非常熟练,要么对文档外观的细节不敏感。

无论如何,我希望您能朝正确的方向入手。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM