vba 比较两个字符串时类型不兼容
vba types incompatible while comparing two strings
我想将来自两个不同工作表的两个字符串与 excel 中的 vba 进行比较。已经编写了以下代码:
Public Sub Vergleich_Arbeitsmappen()
Dim i As Long
Dim projectCounter As Integer
Dim strAngNr As String
Dim strCodename As String
Dim wks As Workbook
strAngNr = Range("C3").Value
strCodename = Range("C4").Value
projectCounter = 200
Set wks = Workbooks.Open("filename")
For i = 2 To projectCounter
If CStr(Workbooks(wks).Worksheets("Tabelle2").Cells(i, 2).Value) = strAngNr Then
MsgBox "FEHLER"
End If
Next i
End Sub
但是在调试时,excel 总是显示错误“类型不兼容”,即使两个值都是定义的字符串。
您的问题不是来自您正在比较的 2 个字符串,而是来自 Workbooks
- 集合中的无效参数。
由于您的工作簿对象已存储在 wks
中,您只需编写
wks.Worksheets("Tabelle2").Cells(i, 2).Value
您使用 Workbooks
-Collection 按名称或按索引访问打开的工作簿,因此工作簿中的参数是字符串或数字(理论上您可以编写 Workbooks(wks.Name)
,但这完全没有用。
您正在传递类型为 Workbook
的对象作为参数,但失败并给您“类型不兼容”错误。
我想将来自两个不同工作表的两个字符串与 excel 中的 vba 进行比较。已经编写了以下代码:
Public Sub Vergleich_Arbeitsmappen()
Dim i As Long
Dim projectCounter As Integer
Dim strAngNr As String
Dim strCodename As String
Dim wks As Workbook
strAngNr = Range("C3").Value
strCodename = Range("C4").Value
projectCounter = 200
Set wks = Workbooks.Open("filename")
For i = 2 To projectCounter
If CStr(Workbooks(wks).Worksheets("Tabelle2").Cells(i, 2).Value) = strAngNr Then
MsgBox "FEHLER"
End If
Next i
End Sub
但是在调试时,excel 总是显示错误“类型不兼容”,即使两个值都是定义的字符串。
您的问题不是来自您正在比较的 2 个字符串,而是来自 Workbooks
- 集合中的无效参数。
由于您的工作簿对象已存储在 wks
中,您只需编写
wks.Worksheets("Tabelle2").Cells(i, 2).Value
您使用 Workbooks
-Collection 按名称或按索引访问打开的工作簿,因此工作簿中的参数是字符串或数字(理论上您可以编写 Workbooks(wks.Name)
,但这完全没有用。
您正在传递类型为 Workbook
的对象作为参数,但失败并给您“类型不兼容”错误。