マクロ降順のコードですが、その下「連続データの生成」のように まとめたいと思いますが、どうしてもできなくて、教え頂けませんか。
ActiveSheet.Range("A3:N28").Sort Key1:=Range("K3"), Order1:=xlDescending 'A
ActiveSheet.Range("A29:N68").Sort Key1:=Range("K3"), Order1:=xlDescending 'B
ActiveSheet.Range("A69:N108").Sort Key1:=Range("K3"), Order1:=xlDescending 'C
ActiveSheet.Range("A109:N148").Sort Key1:=Range("K3"), Order1:=xlDescending 'D
ActiveSheet.Range("A149:N188").Sort Key1:=Range("K3"), Order1:=xlDescending 'E
ActiveSheet.Range("A189:N228").Sort Key1:=Range("K3"), Order1:=xlDescending 'F
ActiveSheet.Range("A229:N268").Sort Key1:=Range("K3"), Order1:=xlDescending 'G
With ActiveSheet
'連続データの生成
With .Range("A3")
.Value = 1
.AutoFill Destination:=.Resize(26), Type:=xlFillSeries
End With
For i = 29 To 229 Step 40
With .Cells(i, "A")
.Value = 1
.AutoFill Destination:=.Resize(40), Type:=xlFillSeries
End With
No.2ベストアンサー
- 回答日時:
こんな感じ?
Sub test()
Dim iSize As Long
Dim iStart As Long
iSize = 26
iStart = 3
Do While iStart <= 229
With ActiveSheet.Cells(iStart, "A")
.Resize(iSize, 14).Sort Key1:=Range("K:K"), Order1:=xlDescending
.Value = 1
.AutoFill Destination:=.Resize(iSize), Type:=xlFillSeries
End With
iStart = iStart + iSize
iSize = 40
Loop
End Sub
できました。私の知識では、とても理解できない。コードです、もっと勉強しないといけないと感じています。誠に、ありがとうございました、助かりました。
No.1
- 回答日時:
こんにちは
他に規則があるのかないのかわかりませんが、ご提示の内容の行の間隔だけから判断すると、29行目以降の処理は40行分を単位とした処理を繰り返しているので、ご質問のような
For i = 29 To 229 Step 40
のループにそのまままとめることができるのではないでしょうか。
最初のグループはそのまま処理するか、無理やりまとめるなら、ちょっとトリッキーですが
For i = -11 To 229 Step 40
のようにしておいて、r<0の時だけスタートを3にするようにして、ループの中に入れてしまうか。
(後で、可読性が悪くなると思います。)
あるいは、対象とする行数を 26、40、40・・・となるように制御しておいて、3行目をスタート行として、次の処理対象は行数を加算しながら決めるようにする方法にしておくことでも可能だと思います。
(こちらの方がまだ、わかりやすいかと)
見た目の行数だけから勝手に規則性を想像していますが、何らかの規則の元となるルールがあるのなら、それを利用するのが一番良い方法だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) ローマ字、ハイフン付きの並び替え ローマ字抽出方法 Excelマクロ 4 2022/04/01 14:10
- Visual Basic(VBA) ExcelVBAで、index、match関数を使用して、指定範囲に出力したい 3 2022/10/18 21:53
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Excel(エクセル) EXCEL マクロで行を挿入して貼り付けようとするとエラーになる。 2 2022/05/24 09:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
DoEventsがやはり分からない
-
メルカリのメルカードで買い物...
-
【Excel】特定の文字を含むセル...
-
Do~Loopした回数をカウントしたい
-
C言語 b += a ? 1 : 0; の意味
-
UMLでの例外処理
-
VBA 特定の文字が入力されたセ...
-
switch の範囲指定
-
EXCEL VBA マクロ 実行する度に...
-
iD
-
ビープ音を連続して鳴らす
-
Access 日付/時間型を検...
-
・Javaで、C言語の#defineに相...
-
ボタンクリックイベント 重複...
-
GPUはCPUの代わりになりえますか?
-
読み方教えてください。
-
Excel VBAにて2つの処理を同時...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「ご処理進めて頂きますようお...
-
メルカリのメルカードで買い物...
-
エクセルで、日付を入力すると...
-
VBAでループ内で使う変数名を可...
-
【Excel】特定の文字を含むセル...
-
EXCEL VBA マクロ 実行する度に...
-
switch の範囲指定
-
DoEventsがやはり分からない
-
VBの質問#if 0 then ってどう...
-
UMLでの例外処理
-
Do~Loopした回数をカウントしたい
-
VB.NET Excelを読み込んでDataT...
-
月度は何て読みますか?
-
findは動くがfindnextがマクロ...
-
リョウ・・・量?料?
-
VBA SaveChanges 上書きされない
-
iD
-
Select Case文でこのようなこと...
-
Loadイベント中にほかのイベン...
-
セルの値が0はクリアするマクロ
おすすめ情報