No.4ベストアンサー
- 回答日時:
何度もごめんなさい。
投稿後もう一度結果を見てみると・・・
難しく考える必要はないように思えます。
単に並び替えだけでよいのでは?
Sub Sample3()
Dim wS As Worksheet
Set wS = Worksheets("Sheet2")
Worksheets("Sheet1").Range("B:C").Copy wS.Range("B1")
wS.Range("B1").Sort key1:=wS.Range("B1"), order1:=xlAscending, Header:=xlYes
End Sub
で同じ結果になります。
※ Sample2は出現順になりますが、
Sample3はB列の昇順としています。m(_ _)m
No.3
- 回答日時:
No.1・2です。
こちらで今一度確認してみました。
No.1の配置の画像の配置で問題なく動いたのですが・・・
もしかしてシートモジュールにしていませんか?
同じコードを標準モジュールにコピー&ペーストし、シートモジュールを消去して
マクロを実行してみてください。m(_ _)m
No.2
- 回答日時:
No.1です。
最初の質問とは全く異なるのですね?
配置は前回アップした画像通りだとします。
Sub Sample2()
Dim i As Long, lastRow As Long
Dim c As Range, wS As Worksheet
Set wS = Worksheets("Sheet1")
Application.ScreenUpdating = False
With Worksheets("Sheet2")
lastRow = .Cells(Rows.Count, "B").End(xlUp).Row
If lastRow > 2 Then
Range(.Cells(3, "B"), .Cells(lastRow, "C")).ClearContents
End If
lastRow = wS.Cells(Rows.Count, "B").End(xlUp).Row
.Range("D:D").Insert
wS.Range("B:B").AdvancedFilter Action:=xlFilterCopy, copytorange:=.Range("D1"), unique:=True
For i = 2 To .Cells(Rows.Count, "D").End(xlUp).Row
wS.Range("B2").AutoFilter field:=1, Criteria1:=.Cells(i, "D")
Range(wS.Cells(3, "B"), wS.Cells(lastRow, "C")).SpecialCells(xlCellTypeVisible).Copy
.Cells(Rows.Count, "B").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Next i
wS.AutoFilterMode = False
Application.CutCopyMode = False
.Select
.Range("B2").Select
.Range("D:D").Delete
End With
Application.ScreenUpdating = True
End Sub
これではどうでしょうか?m(_ _)m
最初の改良版の説明で申し訳ありませんでした。
早速試してみたのですが、
Range(.Cells(3, "B"), .Cells(lastRow, "C")).ClearContents
のところで下記のエラーが出ます。
実行時エラー’1004':
アプリケーション定義またはオブジェクト定義のエラーです。
すいません、当方VBA初心者の為、対処の仕方が分かりません。。。。
No.1
- 回答日時:
こんばんは!
↓の画像のような配置でも元データはSheet1にあり、Sheet2に表示するとします。
Sheet2のB列商品名はあらかじめ入力済みだという前提です。
Sub Sample1()
Dim i As Long, lastRow As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
Application.ScreenUpdating = False
With Worksheets("Sheet1")
lastRow = .Cells(Rows.Count, "B").End(xlUp).Row
For i = 3 To wS.Cells(Rows.Count, "B").End(xlUp).Row
.Range("B2").AutoFilter field:=1, Criteria1:=wS.Cells(i, "B")
'↑ A列に項目名がある場合「field:=1」の「1」を「2」に変更★//
If .Cells(Rows.Count, "B").End(xlUp).Row > 2 Then
Range(.Cells(3, "C"), .Cells(lastRow, "C")).SpecialCells(xlCellTypeVisible).Copy
wS.Cells(i, "C").PasteSpecial Paste:=xlPasteValues, Transpose:=True
End If
Next i
Application.CutCopyMode = False
.AutoFilterMode = False
wS.Activate
wS.Range("B2").Select
End With
Application.ScreenUpdating = True
End Sub
※ 画像のようにSheet1のA列項目名セルはなにも入っていないとします。
オートフィルタで処理していますので、A列に何らかの項目名が入っている場合は
コード内に記載しているようにフィルタの列を「2」に変更してください。m(_ _)m
ありがとうございます。早速試してみましたら、できました。
追加で申し訳ないのですが、商品名"A"と"F"のように複数ある場合、横方向ではなく"A"の行を追加し、値段をC列に表示する(例でいうとB列に”商品名A"の行が5つできてC列に上から100、110、130、140、150)というようにするのは難しいでしょうか???
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ExcelVBA】Powerクエリーでいうピボット解除と同じ処理をVBAで 4 2022/07/06 17:09
- その他(ネットショッピング・通販・ECサイト) 転売されてしまった商品を取り返そうと検索していたらフリマサイトや大手会社ではない聞いたことのないサイ 5 2022/08/25 21:22
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- Excel(エクセル) エクセルでのVBA 2 2022/08/03 06:48
- Excel(エクセル) 製品番号での整列と、検索に関して 3 2023/06/28 19:20
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) SUMIFのIF分岐について 4 2023/04/15 12:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
VBAで、離れた複数の列に対して...
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
VBAで、特定の文字より後を削除...
-
文字列の結合を空白行まで実行
-
VBAで10行おきにセルの下に罫線...
-
targetをA列のセルに限定するに...
-
VBAのFind関数で結合セルを検索...
-
難問 VBA 今日の日付より前に対...
-
エクセル 2つの表の並べ替え
-
IIF関数の使い方
-
【VBA】複数行あるカンマ区切り...
-
VBAコンボボックスで選択した値...
-
VBAでのリスト不一致抽出について
-
Excel VBA でテキストボックス...
-
Cellsのかっこの中はどっちが行...
-
エクセルVBAにて =A1=B1とすれ...
-
ExcelVBAでテキストルーレット...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
VBA 何かしら文字が入っていたら
-
Changeイベントでの複数セルの...
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報