![](/img/trans.png)
[英]Using VBA Macro to create a word doc then running macro in word doc… crashes excel on end sub
[英]Using Excel data to create Word Doc caption labels in VBA
我正在嘗試使用 VBA 將 Word 文檔報告鏈接到 Excel 數據庫。 我在文檔中插入了各種 ActiveX 文本框控件。 我正在使用唯一代碼(“代碼”)手動輸入這些文本框中的每一個。 其他文本框控件將根據 Excel 數據庫中的關聯數據自動填充。 匹配因子將是“代碼”。
當我運行以下代碼時,我收到一個
運行時錯誤 13“類型不匹配”
在第 16 行( If cell.Value...
)。 我在 VBA 方面沒有很多經驗,但我看到很多例子表明 Value 命令應該綁定到一個“范圍”對象。 感謝您的幫助。
Private Sub CommandButton1_Click()
Dim objExcel As New Excel.Application
Dim exWb As Excel.Workbook
Dim b As Excel.Range
Dim c As Excel.Range
Dim r As Excel.Range
Dim cell As Excel.Range
'Set variables
Set exWb = objExcel.Workbooks.Open("C:\Documents\Book.xlsx")
Set b = exWb.Sheets("Sheet1").Range("B:B")
Set c = exWb.Sheets("Sheet1").Range("C:C")
Set r = exWb.Sheets("Sheet1").Rows
Set cell = exWb.Sheets("Sheet1").Range("A1:Z1000")
For Each r In c
If cell.Value = ThisDocument.TextBox1.Value Then
ThisDocument.TextBox2.Value = b.Value
End If
Next r
exWb.Close
Set exWb = Nothing
End Sub
你可以嘗試這樣的事情:
Private Sub CommandButton1_Click()
Dim objExcel As New Excel.Application
Dim exWb As Excel.Workbook
Dim rng As Excel.Range, m, rw As Excel.Range
'Set variables
Set exWb = objExcel.Workbooks.Open("C:\Documents\Book.xlsx")
Set rng = exWb.Sheets("Sheet1").Range("A1:Z1000")
'Here we're looking for a match in ColC...
' change 3 to any other column you want to match on
m = objExcel.Match(ThisDocument.TextBox1.Value, rng.Columns(3), 0)
If Not IsError(m) Then
'got a match - fetch the other values from that row
Set rw = rng.Rows(m) '<< get the matching row as a Range
ThisDocument.TextBox2.Value = rw.Cells(1).Value 'value from colA
ThisDocument.TextBox3.Value = rw.Cells(2).Value 'value from colB
Else
'no match - clear the other textboxes?
MsgBox "No match found!"
ThisDocument.TextBox2.Value = ""
ThisDocument.TextBox3.Value = ""
End If
exWb.Close False 'no changes saved
Set exWb = Nothing
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.