這是VBA宏在Excel 2013Excel的VBA宏:在「所需的對象」,「對於每個...在...」循環
我通過細胞循環在表1中,色柱B 。對於每個單元格,我希望獲取它的值並在Sheet 2 Col A中進行搜索。如果找到了,我想在Sheet 2的Col B中取對應值並將其放在Sheet 1的相應行中,Col E.
這些表:
Tagging Automatic Categories
B E A B
hat cake Delicious cake.
cake
arm
應該改爲:
Tagging Automatic Categories
B E A B
hat cake Delicious cake.
cake Delicious cake.
arm
代碼:
Sub AutoCategorize()
Dim c As Range
Dim searchRng As Range
For Each c In Sheets("Tagging").Range("B6:B500").Cells ' loop through cells to do the lookup based on
If Not c.Value Is Nothing Then ' if there is something in the cell
If c.Offset(0, 3).Value Is Nothing Then ' make sure the cell to fill is empty
With Sheets("Automatic Categories").Range("A2:A500") ' using the cells we're looking up in...
Set searchRng = .Find(What:=c.Value) ' find it
If Not searchRng Is Nothing Then ' make sure we've found a thing
If Not searchRng.Offset(0, 1).Value Is Nothing Then ' make sure it has a corresponding entry
Set c.Offset(0, 3).Value = searchRng.Offset(0, 1).Value ' fill it in
End If
End If
End With
End If
End If
Next
End Sub
我的問題,我想,是我如何Excel的VBA結構中的數據的理解。不幸的是,MSDN在這方面確實沒有什麼幫助,而且我只能設法將許多事情從實驗中解放出來。
當我運行代碼,我得到
Run-time error '424': Object required
和調試突出
If Not c.Value Is Nothing Then
任何人都可以闡明什麼導致該錯誤的一些光?我很確定我的邏輯是好的,但正如我所說的,我不是100%如何引用單元格/數據結構如何工作。
我是新來的VB和Excel宏,所以如果有更好的方法來構建事物,大聲呼喊。這也是我的第一篇StackOverflow文章,所以請讓我知道我是否做錯了什麼。
是'For Each c In Sheets(「Tagging」).' Range。(「B6:B500」)。Cells''中需要的'.Cells'。 – CallumDA 2014-10-29 10:49:56
E中的公式,代碼可以消失......'= IFERROR(VLOOKUP(B2,'Automatic Categories'!A2:B500,2,FALSE),「」)'會做你的代碼在做什麼 – SeanC 2014-10-29 15:58:15