なぜこのコードは失敗しますか?すべてのワークシートをループして、指定した範囲をソートします。ワークシートをループし、それに応じてデータをソートする
コードは、私が
For ws each activeworkbook.worksheets
ws.activate
を使用するときに動作しますが、私は以下のコードを使用する場合は動作しません。
誰かが私を助け、VBAは、ランタイムエラー1004
を思い付く理由を説明することができます私もFor j = 2 to thisworkbook.worksheets.count
を使用することを好むだろうが、それはこの部分でもない
Sub beautsort()
Dim LR As Long, LC As Long
Dim i As Integer, j As Integer
Dim ws As Worksheet
Application.ScreenUpdating = False
For Each ws In ThisWorkbook.Worksheets
'Starting fromt the last occupied cells and going upwards
Lastrow = ws.Range("B30000").End(xlUp).Row
For i = Lastrow To 3 Step -1
bLR = ws.Range("A" & i).End(xlUp).Offset(1, 0).Row
LC = ws.Range("B" & i).End(xlToRight).Column
If ws.Range("B" & i).Value = "All Grps" Then
ws.Range(Range("B" & i).Offset(-1, -1), ws.Cells(bLR, LC)).Sort _
key1:=ws.Range("B3"), Order1:=xlDescending
End If
Next i
Next ws
Application.ScreenUpdating = True
End Sub
ws.Range(ws.Range( "B"&i).Offset(-1、-1)、ws.Cells(bLR、LC))のようなシート参照で範囲を修飾します。Sort _ key1:= ws.Range( "B3")、Order1:= xlDescending – sktneer
ありがとうsktneer;) –
ココを歓迎します! :) – sktneer