我试图创建一个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