簡體   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