尽管内容存在,但 xlWhole 后出现索引 9 错误
Index 9 error after xlWhole although content is there
我正在尝试使用以下代码在 Outlook VBA 宏中搜索 Excel 电子表格的整个 A 列,并在同一行中输出 K 列的值。
以下代码工作正常:
ColumnA = InputBox("Please Column A value.")
ColumnB = wb.Worksheets("fsgksdhgks").Range("A:A").Find(ColumnA).Offset(0, 10).Value
MsgBox (ColumnB)
但是,我实际需要的以下代码,因为我只想要唯一值(例如,我不想在输入 BC 时找到 ABC),抛出 Error 9 Index 错误。
ColumnA = InputBox("Please Column A value.")
ColumnB = wb.Worksheets("fsgksdhgks").Range("A:A").Find(What:=ColumnA, LookAt:=xlWhole).Offset(0, 10).Value
MsgBox (ColumnB)
有没有人有什么想法?
后期绑定到 excel,常量未定义,因此使用值 1 代替 xlWhole
。考虑检查是否找到 returns 一个对象以避免进一步的错误。
Sub demo()
Dim ColumnA As String, ColumnB As String, rng As Range
Dim wb As Workbook: Set wb = ThisWorkbook ' amend to suit
ColumnA = InputBox("Please Column A value.")
Set rng = wb.Worksheets("fsgksdhgks").Range("A:A").Find(What:=ColumnA, LookAt:=1) ' 1=xlWhole
If rng Is Nothing Then
MsgBox ColumnA & " not found", vbExclamation
Else
ColumnB = rng.Offset(0, 10).Value
MsgBox ColumnB, vbInformation, ColumnA & " found at " & rng.Address
End If
End Sub
我正在尝试使用以下代码在 Outlook VBA 宏中搜索 Excel 电子表格的整个 A 列,并在同一行中输出 K 列的值。
以下代码工作正常:
ColumnA = InputBox("Please Column A value.")
ColumnB = wb.Worksheets("fsgksdhgks").Range("A:A").Find(ColumnA).Offset(0, 10).Value
MsgBox (ColumnB)
但是,我实际需要的以下代码,因为我只想要唯一值(例如,我不想在输入 BC 时找到 ABC),抛出 Error 9 Index 错误。
ColumnA = InputBox("Please Column A value.")
ColumnB = wb.Worksheets("fsgksdhgks").Range("A:A").Find(What:=ColumnA, LookAt:=xlWhole).Offset(0, 10).Value
MsgBox (ColumnB)
有没有人有什么想法?
后期绑定到 excel,常量未定义,因此使用值 1 代替 xlWhole
。考虑检查是否找到 returns 一个对象以避免进一步的错误。
Sub demo()
Dim ColumnA As String, ColumnB As String, rng As Range
Dim wb As Workbook: Set wb = ThisWorkbook ' amend to suit
ColumnA = InputBox("Please Column A value.")
Set rng = wb.Worksheets("fsgksdhgks").Range("A:A").Find(What:=ColumnA, LookAt:=1) ' 1=xlWhole
If rng Is Nothing Then
MsgBox ColumnA & " not found", vbExclamation
Else
ColumnB = rng.Offset(0, 10).Value
MsgBox ColumnB, vbInformation, ColumnA & " found at " & rng.Address
End If
End Sub