我試圖創建一個VBA宏,它將搜索「Sheet1」中的非空白單元格,如果非空白,它會粘貼相應的活動單元格從「Sheet1」到「Sheet2」中的同一列。運行時錯誤:1004(複製到另一個工作表)
下面是我的代碼,但我敢肯定,我做錯了什麼,因爲代碼拋出我的錯誤:1004
Sub Test()
Dim cel As Range
Dim strAddress As String
Dim StartPoint As Range
Set StartPoint = ActiveCell
'Change to necessary amount of Rows & Columns
With Sheets("Sheet1").Range(Cells(9, 5), Cells(1000, 200))
Set cel = .Find(What:="*", After:=Cells(1000, 200), SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Not cel Is Nothing Then
strAddress = cel.Address
Do
' Do something with cel, e.g.
StartPoint.EntireColumn.Copy Destination:=Worksheets("Sheet2").Range(StartPoint.Column & "1").End(xlToRight).Offset(1)
Set cel = .FindNext(After:=cel)
If cel Is Nothing Then Exit Do
Loop Until cel.Address = strAddress
End If
End With
End Sub
可有人請告知我在做什麼錯? 謝謝!
1)不在這裏搜索*運行時錯誤1004 *。 2)不使用調試器遍歷代碼來查看您嘗試訪問對象引用的哪個時間失敗或不正確。 3)在這裏不再搜索*運行時錯誤1004 *。 –
嗨,我確實運行了調試器,它在「with」語句中顯示錯誤。而且我明白這個錯誤是由於VBA沒有掌握我在該範圍內提到的細胞。但問題是我不是一個強大的宏用戶,只是一個學習基礎知識的小孩! :)感謝您能否讓我知道我在代碼中犯的錯誤! :D –
FWIW - 不合格的'Cells'參考文獻使用與Sheets(「Sheet1」)相對應的語句「Range(Cells,9)」,Cells(1000,200))。 .Range(ActiveSheet.Cells(9,5),ActiveSheet.Cells(1000,200))',這顯然是無稽之談。但您真的想要'帶有表格(「Sheet1」)。範圍(表格(「Sheet1」)。單元格(9,5),表格(「Sheet1」)。單元格(1000,200))''。正如@KenWhite所說,在這個網站上搜索可能會發現數百個問題顯示問題所在。 – YowE3K