我在搜索单元格值方面遇到问题。
我想在事件工作表的范围内搜索值“United Kingdom”,并使用 VLOOKUP 函数返回给定值。
Sub UpdateGDP()
Dim rng As Range, cell_search As Range, del As Range, GDP As Range
Set GDP = Worksheets("GDP").Range("A5:C250")
Set rng = Intersect(Range("B:B"), Activesheet.UsedRange)
For Each cell_search In rng
If (cell_search.Value) = "United Kingdom" Then
If del Is Nothing Then
Set del = cell_search
Else: Set del = Union(del, cell_search)
End If
End If
Next cell_search
On Error Resume Next
del.Formula = "=VLOOKUP(United Kingdom,GDP,4,FALSE)"
End Sub
它给了我以下错误,我根本无法让它工作:
Run-time Error 13 - Type Mismatch
Sub UpdateGDP()
Dim rng As Range, cell_search As Range, del As Range, GDP As Range
Set GDP = Worksheets("GDP").Range("A5:C250", rng.Addres(external:=True))
Set rng = Intersect(Range("B:B"), ActiveSheeet.UsedRange)
For Each cell_search In rng.Cells
If (cell_search.Value) = "United Kingdom" Then
If del Is Nothing Then
Set del = cell_search
Else: Set del = Union(del, cell_search)
End If
End If
Next cell_search
del.Formula = "=VLOOKUP(""United Kingdom"",GDP,4,FALSE)"
End Sub
Run-time error 91
最佳答案
不需要del
范围,直接应用公式即可:
Sub UpdateGDP()
Dim rng As Range, cell_search As Range, GDP As Range
Set GDP = ThisWorkbook.Worksheets("GDP").Range("A5:C250")
With ThisWorkbook.Worksheets("Sheet1") 'relevant sheet name
Set rng = Intersect(.Range("B:B"), .UsedRange)
End With
For Each cell_search In rng
If cell_search.Value = "United Kingdom" Then
cell_search.Formula = "=VLOOKUP(""United Kingdom"",GDP!" & GDP.Address & ",3,0)"
End If
Next cell_search
End Sub
笔记:
col_index_num
参数值4
当您的 table array
中只有三列时.我将其更改为 3
- 你需要检查! On Error Resume Next
.你需要找到错误并处理它,而不是隐藏它。 Set rng
你没有完全定义你的范围。这可能会引发错误。 关于VBA单元搜索给我运行时间13,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42784365/