嗨,任何人都可以找出我收到此消息的原因..
运行时错误' 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
提前谢谢你:)
答案 0 :(得分:1)
您需要使用工作表名称限定Range("A1")
(如Paul Ogilvie的评论中所述。
但是您不需要在工作表之间来回切换以进行粘贴。在“复制”之后,您只需添加“目的地”。
我做了你的代码的缩减版本(只有2列),所以你可以看到我的意思:
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
这当然假设您要粘贴到相同的列号!
答案 1 :(得分:0)
假设单元格A13是工作表输出中的活动单元格,请参阅以下代码
worksheets("output").Range("A13").Activate
ActiveCell.EntireColumn.Copy Worksheets("input").Range("A1")
它将复制整个列并将其粘贴到工作表输入