0

好吧,这个问题的第一个例子没有得到完美的解释,所以我想我会再试一次。我想要做的是将包含 sheet1 中标题扇区的列粘贴到 sheet2 的 A 列中。我有以下代码,但它一直在“range(strC).select”行上给我错误“'range' of '_object global' failed”,我假设这是因为 strC 存储为列的编号和不是这封信,但我不确定。关于如何解决这个问题的任何想法?

Sub CorrectOrder()   
Dim strC As String   
Dim cl As Range

strC = 0

For Each cl In Workbooks("Report.xls").Worksheets("Sheet1").Range("A1:AZ1")   
If cl.Value = "Sector" Then   
strC = cl.Column   
Workbooks("Report.xls").Worksheets("Sheet1").Range(strC).Select   
Selection.Copy   
Workbooks("Report.xls").Worksheets("Sheet2").Range ("A1")   
Selection.Paste   
End If   
Next cl   
End Sub
4

1 回答 1

1

我会这样做:

Sub CorrectOrder()
    Dim searchRange As Range, cl As Range

    Set searchRange = Workbooks("Report.xls").Worksheets("Sheet1").Range("A1:AZ1")

    For Each cl In searchRange
        If cl = "Sector" Then
            Workbooks("Report.xls").Worksheets("Sheet1").Columns(cl.Column).Copy Destination:=Workbooks("Report.xls").Worksheets("Sheet2").Range("A1")
        End If
    Next cl
End Sub

基本上Columns用来引用列。并且在复制和粘贴时不要费心选择。

于 2013-05-27T13:41:08.137 回答