我正在嘗試使用以下代碼在 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),我實際上需要以下代碼,它會引發錯誤 9 索引錯誤。
ColumnA = InputBox("Please Column A value.")
ColumnB = wb.Worksheets("fsgksdhgks").Range("A:A").Find(What:=ColumnA, LookAt:=xlWhole).Offset(0, 10).Value
MsgBox (ColumnB)
有沒有人有任何想法?
uj5u.com熱心網友回復:
后期系結到 excel 時,未定義常量,因此使用值 1 代替xlWhole. 考慮檢查 find 回傳一個物件以避免進一步的錯誤。
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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/415391.html
標籤:
下一篇:Sumif函式中的月份函式
