csg*_*csg 2 excel vba excel-vba
我有这段代码
With Data.Cells(rowMatch, GWECol)
.Value = Cmp.Cells(i, GWENetPr)
.AddComment
.Comment.Text Text:=UCase(Environ("UserName")) & ":" & vbNewLine _
& "Comment: " & Cmp.Cells(i, CommCol) & vbNewLine _
& "Transaction: " & Cmp.Cells(i, QRTran) & vbNewLine _
& "QR Pr: " & Cmp.Cells(i, QRPr) & vbNewLine _
& "QR WD: " & Cmp.Cells(i, QRWD) & vbNewLine _
& "QR WD All: " & Cmp.Cells(i, QRWDA) & vbNewLine _
& "QR XPr: " & Cmp.Cells(i, QRXPr) & vbNewLine _
& "QR XAll: " & Cmp.Cells(i, QRXAll) & vbNewLine _
& "GWE Pr: " & Cmp.Cells(i, GWEPr) & vbNewLine _
& "GWE All: " & Cmp.Cells(i, GWEAll) & vbNewLine _
& "GWE XPr: " & Cmp.Cells(i, GWEXPr) & vbNewLine _
& "GWE XAll: " & Cmp.Cells(i, GWEXAll)
.Comment.Shape.TextFrame.AutoSize = True
End With
Run Code Online (Sandbox Code Playgroud)
Cmp.Cells(i,X)指向可能具有#N / A错误(失败的VLOOKUP)的单元格。
是否可以将代码仅以#N / A作为字符串或将其保留为空?现在,只要引用的单元格之一为#N / A,该块将失败,并且根本不会添加任何注释文本。
谢谢!
您正在使用单元格的默认属性,
Debug.Print Cmp.Cells(i, QRXAll)
例如,这总是引用cell .Value属性。该.Value实际上是一个错误类型,Error 2042我想你可以通过检查避免
CLng(Cmp.Cells(i,QRXA11))
但这将导致结果2042而不是#N/A文本。
如果要获取字符串#N/A:尝试使用Cmp.Cells(i, QRXAll).Text which依赖于单元的.Text属性而不是它的.Value。
Debug.Print Cmp.Cells(i, QRXAll).Text