2017-02-28 126 views
0

我遇到了一些VBA代碼問題。我想要做的是從Excel單元導出代碼並將它們導入到文本字段中的Word文檔中。Excel - 將單元格數據導出爲Word文檔的VBA代碼

這是我的代碼。

Sub test() 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Sheets("Sheet1") 
    Dim objWord As Object 
    Set objWord = CreateObject("Word.Application") 
    objWord.Visible = True 
    objWord.Documents.Open "C:\Users\Acer Windows 7\Desktop\test.docx" 
    With objWord.ActiveDocument 
     .Text1.Value = ws.Range("A1").Value 
     .Text2.Value = ws.Range("B1").Value 
     .Text3.Value = ws.Range("C1").Value 
    End With 
End Sub 

此代碼需要靜態單元格並將它們導出到Word文檔中。我需要的是每行上的鏈接或按鈕,將從該行導出該代碼並將其放入Word文檔中。

例如,如果我點擊4行中的鏈接/按鈕,它從C4,E4的數據,F4

這可能嗎?我不知道如何去做。

回答

0

如果行數很多,爲每行添加一個按鈕可能有點麻煩。我建議只使用1個導出所選行的按鈕。所以你只需要保持1個按鈕/分,而不是很多。

Cells(Row, Column)可以在這裏使用。

Sub test() 
    Dim ws As Worksheet 
    Set ws = ThisWorkbook.Sheets("Sheet1") 
    Dim objWord As Object 
    Set objWord = CreateObject("Word.Application") 
    objWord.Visible = True 
    objWord.Documents.Open "C:\Users\Acer Windows 7\Desktop\test.docx" 
    With objWord.ActiveDocument 
     .Text1.Value = ws.Cells(Selection.Row, 1).Value 
     .Text2.Value = ws.Cells(Selection.Row, 2).Value 
     .Text3.Value = ws.Cells(Selection.Row, 3).Value 
    End With 
End Sub 

上面的代碼將始終使用所選單元格的行。所以首先你選擇你想要導出的行,然後按下運行test()的按鈕。

+0

當我現在運行代碼,由於某種原因,我得到來了,說 – GreatSc0tt

+0

之前「對象不支持此屬性或方法」我還沒有seent這個 我忘了加上'.value的一個盒子「對不起。我編輯了我的答案。 –

+0

它確定。我提供幫助。 我在每個選擇語句的末尾添加了.Value。我似乎仍然得到相同的錯誤。當我按下按鈕時,它會打開word文檔並引發錯誤。我不知道它是否因爲我現在使用word 2016 – GreatSc0tt

相關問題