我正在使用 VBA Word 宏來創建帶有個性化標題的檔案。我有一個電子表格,其中包含要插入標題的文本(每一行都應插入單獨的頁面)。
為此,我想將電子表格中的資料作為一個Array匯入 Word,以便將這些文本放在適當的位置。
我寫了一段代碼來打開電子表格并使用方法獲取預定義的范圍Select;嘗試將其傳遞Selection給Range物件時出現錯誤。
錯誤訊息是Runtime Error 13: Incompatible types。
我添加了一個If回圈以確保Selection每次運行代碼時它都不是空的,而且它不是空的。
Sub main()
'Main procedure
Dim app_Excel As Excel.Application
Set app_Excel = CreateObject("Excel.Application")
Dim wbk_srce As Workbook
Set wbk_srce = app_Excel.Workbooks.Open("C:\0_portolon\Dias.xlsm", , False)
Dim wsh_srce As Worksheet
Set wsh_srce = wbk_srce.Worksheets(3)
wsh_srce.Activate
cell_1 = CStr("A1")
cell_2 = CStr("D216")
Dim header_range As Range
wsh_srce.Range(cell_1, cell_2).Select
If Selection = Empty Then
Debug.Print ("error")
Else
Debug.Print ("good")
End If
Set header_range = Selection '<---Error
Dim header_array() As Variant
'header_array = header_range.Value
'Call add_readers
End Sub
注意:我只將 Microsoft Excel 16.0 物件庫添加到 VBA Word。
我怎樣才能使這項作業?
提前致謝,
蒂亞戈
uj5u.com熱心網友回復:
Word 和 Excel 都有一個Selection物件,因此當您在 Excel 中參考一個選擇時,您需要通過在它前面加上您的 Excel 應用程式變數來限定它,即app_Excel.Selection.
您還需要對兩個應用程式共有的其他物件執行此操作,例如Range. Word 將被理解Dim header_range As Range為Word.Range,因此在 Excel 中為其分配一個選擇是行不通的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/429217.html
