MACRO VBA – “运行时错误”1004“应用程序定义的或对象定义的错误”

嗨,任何人都可以找出为什么我得到这个消息..

运行时错误“1004”应用程序定义或对象定义的错误

这是我的代码,问题行似乎是:

range("A1").Select

这里是其余的代码:

 Sub HorizontalLoop() Dim lCol As Long Sheets("output").Select For lCol = 1 To 100 Dim inputrange As String If Not IsEmpty(Cells(lCol).Value) Then inputrange = Cells(1, lCol).Value ActiveCell.EntireColumn.Select Selection.Copy Sheets("input").Select range("A1").Select ActiveSheet.Paste Sheets("output").Select End If Next lCol End Sub 

先谢谢你 :)

假设单元格A13是工作表输出中的“活动”单元格,请参阅下面的代码

 worksheets("output").Range("A13").Activate ActiveCell.EntireColumn.Copy Worksheets("input").Range("A1") 

它会复制整个列并将其粘贴到工作表input

您需要使用工作表名称来限定Range("A1") (如Paul Ogilvie的评论中所述。

但是你不需要在工作表之间来回切换来粘贴。 在“复制”之后,您可以添加“目的地”。

我做了一个你的代码(只有2列)的减less版本,所以你可以看到我的意思:

 Sub HorizontalLoop2() Dim lCol As Long Dim inputrange As String Dim wsO As Worksheet Dim wsI As Worksheet Set wsO = ThisWorkbook.Worksheets("output") Set wsI = ThisWorkbook.Worksheets("input") For lCol = 1 To 2 If Not IsEmpty(wsO.Cells(lCol).Value) Then inputrange = wsO.Cells(lCol).Value wsO.Columns(lCol).Copy _ Destination:=wsI.Cells(1, lCol) End If Next lCol End Sub 

这当然假设你想粘贴到相同的列号!