宏VBA - "run time error '1004' application - defined or object defined error"



嗨,有人能理解我收到这条消息的原因吗。。

运行时错误"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

提前感谢:)

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

但是您不需要在要粘贴的工作表之间来回切换。在"副本"之后,您可以添加"目的地"。

我对你的代码做了一个精简版(只有两列),这样你就可以明白我的意思了:

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

当然,这是假设您希望粘贴到相同的列编号!

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

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

它将复制整个列并将其粘贴到工作表输入

相关内容

最新更新