摘要:我正在寫一個宏,它從excel文件中的許多不同工作表取得名稱並將它們一起編譯在「主列表」上,但我正在在另一張紙上引用單元格時遇到問題。VBA引用單元格使用工作表名稱不正常
問題:當我使用表格名稱作爲參考Sheets("MasterList").ActiveCell.Offset(0, 1)
引用特定單元格時,沒有任何東西被拾取。但是,當我刪除Sheets("MasterList")
宏正常工作(該宏當前正在「MasterList」,這是唯一的方法)。此外,我的代碼中拼寫名稱的拼寫正確。
問題:爲什麼會發生這種情況?代碼背後的邏輯看起來很合理,我正確地拼寫我的表名。
代碼:
Do
If Sheets("MasterList").ActiveCell.Offset(0, 1) = firstName Then 'IF FIRST AND LAST NAMES MATCH, EXIT THE CHECK
Exit Do
End If
On Error Resume Next
Cells.Find(What:=lastName, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Loop Until Err.Number > 0
Activecell是Excel應用程序對象的屬性,而不是工作表。它表示當前活動窗口中的活動單元格。 –
+1像往常一樣很好地解釋了問題。除蒂姆/克里斯提到的兩件事。 1)'ON ERROR RESUME NEXT'將其從代碼中拋出。除非您將它用作「主動」編程,否則應避免使用OERN。 2)我會建議使用這個鏈接,解釋如何使用'.Find'和'.FindNext' http://siddharthrout.wordpress.com/2011/07/14/find-and-findnext-in-excel-vba/ –
@SiddharthRout像往常一樣,有用的材料:D +1。查找教程將對我非常有幫助。關於擺脫OERN,我不確定如果find函數沒有找到它所要查找的內容,find函數將如何工作,但我相信這是在你的教程中解釋的:p –