2017-10-27 4 views
0

1枚のブックがあります。計画では、複数のシートを追加してから、各シートに同じマクロを適用します。私はVBAを自分自身で教えようとしており、一度に1ステップずつ進んでいます。 ブックが1つあり、他の関数を適用する前にA列を並べ替えるが、コンパイルエラーと構文エラーが続く。理由は分かりません。助けてください。VBAの並べ替えでエラーが発生しました

Public Sub AtRisk() 
    ScreenUpdating = False 

    Dim ws As Worksheet 
    Dim rowRange As Range 
    Dim lastRow As Long 


    For Each ws In ThisWorkbook.Worksheets 
     Sheets(ws.Name).Select 

     lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 

     Set rowRange = ws.Range("A1:A" & lastRow).Sort Key1:=rowRange, Order1:=XLAscending, Header:=XLYes 

    Next ws 
    ScreenUpdating = True 
End Sub 
+1

(1) 'Set rowRange'行から' _'を削除してください。 '_'はVBAの行継続文字として使用されます。 (2)その行を、 'Set'を実行する2行と' Sort'を実行する次の行( 'rowRange.Sort'を使用)に分割します。 – YowE3K

答えて

3

rowRangeは宣言に従って範囲です。最初に設定する必要があります。

Set rowRange = ws.Range("A1:A" & lastRow) 

次に、次の行に並べ替えてください。

rowRange.Sort Key1:=rowRange, Order1:=XLAscending, Header:=XLYes 

また、ワークシートを選択する必要はありません。それがあれば、ws.selectは十分です。

+0

もちろん、チェックなしでSmockのコードをコピーしました。私のせい。 – MarcinSzaleniec

関連する問題