プロが教える店舗&オフィスのセキュリティ対策術

並べ替え、ソートの構文がわからない。
お世話になります。VBA超初心者です。
エクセルでワークシート納品書に入力した内容を
ワークシート一覧表にマクロて転記させておりますが、納品書の入力日が入力忘れで翌日、前日日付けで入力することがあります。そうすと、一覧表の日付けの項目が昇順にはなりません。当たり前の話しなのですが、その為、マクロのコードにソートさせる構文を追記させましたが、エラーがでます。たぶん、大きな間違いをしていると思います。なんと、記述すればよいのでしょうか?
因みにワークシート一覧表の日付けは、セルA1に項目名、セルA2以降に日付けが入るようになっています。
以下、マクロコードです。

Sub TEST()

With Sheets("一覧表").Range("A1000").End(xlUp)
.Offset(1, 0).Resize(10) = Sheets("納品書").Range("H3:H3").Value
.Offset(1, 1).Resize(10) = Sheets("納品書").Range("I3:I3").Value
.Offset(1, 2).Resize(10) = Sheets("納品書").Range("B11:B20").Value
.Offset(1, 3).Resize(10) = Sheets("納品書").Range("C11:C20").Value
.Offset(1, 3).Resize(10) = Sheets("納品書").Range("D11:D20").Value
.Offset(1, 4).Resize(10) = Sheets("納品書").Range("E11:E20").Value
.Offset(1, 5).Resize(10) = Sheets("納品書").Range("F11:F20").Value
.Offset(1, 6).Resize(10) = Sheets("納品書").Range("H11:H20").Value
.Offset(1, 7).Resize(10) = Sheets("納品書").Range("I11:I20").Value

If WorksheetFunction.CountBlank(Sheets("一覧表").Range("A1:B1").CurrentRegion.Columns(3)) > 0 Then
Sheets("一覧表").Range("A1:B1").CurrentRegion.Columns(3).SpecialCells(xlCellTypeBlanks).EntireRow.DELETE
End If

Sheets("一覧表").Range("A1:A1000").Sort Range("A1:A1000")

End With


MsgBox "転記完了致しました。"

End Sub

A 回答 (2件)

No1です。



>RangeクラスのSortメソッドが失敗しました。と言うエラーがでました。
あれっ?
ドキュメントを見て「省略可」となっていたので、確認していませんでした。
申し訳ありません。
https://learn.microsoft.com/ja-jp/office/vba/api …

実際に試してみたところ、第一keyだけは指定しないといけないようですね。
大変失礼いたしました。
Sheets("一覧表").Range("A1:A1000").Sort Sheets("一覧表").Range("A1")
では、いかがでしょうか?
    • good
    • 0
この回答へのお礼

改めまして、ありがとうございます。
記述を書き直しましたが、再び
同じエラーが!
Sheets("一覧表").Range("A1:A1000").Sort が黄色く表示されました。
難しいですね〜。
本当に申し訳けないです。

お礼日時:2023/06/29 00:57

こんばんは



何がどうなっているのかよくわかりませんけれど・・

多分、
>Sheets("一覧表").Range("A1:A1000").Sort Range("A1:A1000")
でエラーになっているのかと思いますが、想像するところkeyのRangeがSortの範囲内に無いのではないかと思います。
(シートが異なる可能性がありそう)

1列だけのソートのようなので、keyの引数も省略できますから、
 Sheets("一覧表").Range("A1:A1000").Sort
としておけば、実行されるものと思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。早速、書き直しましたが、
RangeクラスのSortメソッドが失敗しました。と言うエラーがでました。何がいけないのでしょうねー。

お礼日時:2023/06/29 00:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!