画像のように1~2行目に「日付」などの項目が入った表があります。
この表は手袋をした作業社が現場でタブレット端末で使っています。
そのため画面にマクロのボタンを作成し、
ボタンを押したら「確定納期」を昇順で並べるボタンを
作成しようと思っております。
いろいろやってみたのですが「日付」などの項目を除外して、
3行目以下のデータだけ並べ替えるための範囲の指定方法がわかりません。
素人の感覚からすると、
------------
Sub test3()
ActiveSheet.Cells("A3"):("H3.End(xlDown))" _
.Sort Key1:=Range("H3"), order1:=xlAscending
End Sub
------------
でなんとかかるような気がするのですが、
実際には構文エラーで動作しません。
頑張って調べてみたのですが空白があるとか、
ないとかの条件もあるらしく複雑でわかりませんでした。
すいませんが、今回のように1~2行目に何か項目があり、
データが3行目以下にある表を昇順に並べ替える
マクロを作成する場合、範囲指定はどうすればいいのでしょうか?
すいませんが詳しい方、説明の上手な方、直接、コードで説明できる方、
お手数ですが教えて下さい。よろしくお願いします。
※今回はkey1になるH列に空白はありません。
No.4ベストアンサー
- 回答日時:
>>やってみたんだけど、動作しませんでした。
>>これでいいんですよね?
1,2行目のセルを結合してませんか? していたら以下。
H列最終行を取得する関数はRange("H3").End(xlDown).Rowとする。
Sub Sample1()
Dim lastRow As Long
With ActiveSheet
ActiveSheet.Range("A3:H" & ActiveSheet.Range("H3").End(xlDown).Row).Sort Key1:=Range("H3"), order1:=xlAscending
End With
End Sub
ご返答ありがとうございます。
動きました。
動作してたのですが、No.1さんのマクロの後にテストしてたので、
画面の変化がないため勘違いしていました。
「xlAscending」を「xlDescending 」に入れ替えてみて、初めて気が付きました。
こちらの早とちりですいませんでした。
今回はありがとうございました。
機会がありましたら、またお願いします。
No.3
- 回答日時:
ゴメン3行目からだった。
方法は色々あります。以下はほんの1例
ActiveSheet.Range("A3:H" & ActiveSheet.Range("H1").End(xlDown).Row).Sort Key1:=Range("H3"), order1:=xlAscending
ご解答ありがとうございます。
やってみたんだけど、動作しませんでした。
これでいいんですよね?
↓
Sub Sample1()
Dim lastRow As Long
With ActiveSheet
ActiveSheet.Range("A3:H" & ActiveSheet.Range("H1").End(xlDown).Row).Sort Key1:=Range("H3"), order1:=xlAscending
End With
End Sub
質問はしばらく開けておきます。
何か気が付くことがあれば教えてください。
ご解答ありがとうございます。
No.2
- 回答日時:
方法は色々あります。
以下はほんの1例ActiveSheet.Range("A2:H" & ActiveSheet.Range("H1").End(xlDown).Row).Sort Key1:=Range("H2"), order1:=xlAscending
No.1
- 回答日時:
こんにちは!
2行目までが項目行で実データは3行目以降にあるのですね?
Sub Sample1()
Dim lastRow As Long
With ActiveSheet
lastRow = .Cells(Rows.Count, "H").End(xlUp).Row
Range(.Cells(3, "A"), .Cells(lastRow, "H")).Sort key1:=.Range("H3"), order1:=xlAscending, Header:=xlNo
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
ご解答ありがとうございます。
こんなに複雑だと思いませんでした。
「Range(.Cells(3, "A"), .Cells(lastRow, "H")).」
この書き方わかりやすいです。
いつもありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) vbaで条件付き書式を設定したときの適用範囲について 1 2023/07/17 23:14
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) 範囲指定をした中で、住所の列をユーザー設定の並べ替えをしたい 3 2022/05/15 13:51
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
Excel関数で、範囲内の最後のセ...
-
更新前と更新後の差分をVBAを使...
-
Excel関数:「0」を除いた標準...
-
エクセル 8ケタの数字から日数...
-
エクセル セル内の重複する文...
-
値の入っているセルのうち、一...
-
ピボットテーブル 0個の行を...
-
【エクセル】区切り位置で分割...
-
複数の候補列から、検索値と一...
-
Excelで複数列かつ複数行分の一...
-
SUMIFで数値が入力されているセ...
-
エクセルの表について
-
あるexcel表からチェックボック...
-
エクセル、正数のみの集計[(負...
-
Excelのマクロでソートがうまく...
-
スプレッドシートでドロップダ...
-
エクセルVBAを使ってセルに日付...
-
Excel:合計が一番上になる形で...
-
Excelのマクロで行を間引きたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで隣のセルと同じ内容に列...
-
Excel関数:「0」を除いた標準...
-
【エクセル】区切り位置で分割...
-
Excel関数で、範囲内の最後のセ...
-
エクセルに入力された日付「S40...
-
値の入っているセルのうち、一...
-
ピボットテーブル 0個の行を...
-
SUMIFで数値が入力されているセ...
-
エクセルで何種類のデータがあ...
-
複数の候補列から、検索値と一...
-
【Excel】歯抜けデータの集約
-
更新前と更新後の差分をVBAを使...
-
SUMPRODUCT関数 行が増えても...
-
A and B or Cの合計の出し方
-
SUMIFとCOUNTIFの違いについて
-
エクセル 8ケタの数字から日数...
-
VLOOKUPの検索で該当するものが...
-
Excelのマクロでソートがうまく...
-
ピボットで複数の区切りでグル...
-
Excelで複数列かつ複数行分の一...
おすすめ情報