总是说worksheet 作用range错误,哪里错了?
代码如下,sheet3有自定义序列,是有顺序百家姓,剩下的工作簿是没有排序的名字,姓加名,未排序
帮我看看哪里错了!求救!Option Explicit
    
Sub demo1()
    
    
   Dim sin As Worksheet, rng As Range, i As Long, myorder As Range
   
   Set myorder = Worksheets("sheet3").Range("b3:b18")   
   
   Application.AddCustomList (myorder)
   
   
    For Each sin In Worksheets
    
        If sin.Name <> "Sheet3" Then
        
            i = 2
            
            Do While sin.Cells(i, 2).Value <> ""
                sin.Cells(i, 1).Value = Left(sin.Cells(i, 2), 1)
                i = i + 1
            Loop
                        Set rng = sin.Range(Cells(1, 1), Cells(1, 1).End(xlDown).End(xlToRight))
            
            rng.Sort key1:=Range("A:A"), ordercustom:=Application.CustomListCount + 1
            
            Range("A:A").Clear
        
        End If
    Next
    
    
    Application.DeleteCustomList (Application.CustomListCount + 1)
    
     
    
End Sub

解决方案 »

  1.   

    咋觉得你这操作就是 先把姓名列的姓放到一列新的,然后再vlookup从sheet3里找到相应的序号,最后用序号列进行排序。
    操作一遍录制一个宏,然后再稍作修改即可。
      

  2.   

    Set rng = sin.Range(Cells(1, 1), Cells(1, 1).End(xlDown).End(xlToRight))
    这行改成:
    Set rng = sin.Range(sin.Cells(1, 1), sin.Cells(1, 1).End(xlDown).End(xlToRight))
    试试?