按标题组织列

时间:2013-05-23 20:39:20

标签: excel vba

好吧,这个问题的第一个例子没有完全解释,所以我想我再试一次。我想要做的是将包含sheet1中的标题扇区的列粘贴到sheet2的A列。我有以下代码,但它一直给我错误“'范围'的'_object global'失败”在“范围(strC).select”行,我假设是因为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

1 个答案:

答案 0 :(得分: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来引用该列。并且在复制和粘贴时不要费心。