Excel VBAマクロについて質問です
※Excel Ver.は2005でやってます
例のような感じで、
同じ列(列1)に或る同じ列名の数字(列2)を足して
違うセル、または違うブックの指定行に合計値を横並び表示させたいのですがうまくいきません
例のように
同じ言葉が含まれているもの(りんご・青りんご)は足して出したいと思ってます
【理想】実行前
******************************
番号 名前 個数
001 りんご 1
002 ばなな 2
003 いちご 3
001 青りんご 2
******************************
【理想】実行後
******************************
番号 りんご ばなな いちご
001 3 - -
002 - 2 -
003 - - 3
******************************
※「-」記号はついてなくても大丈夫です
現在、組んでいるコード・実行結果をのせておきました
どなたか享受ください、お願いいたします
j = 1
For i = 0 To Range("A65536").End(xlUp).Row
cnt = cnt + Range("列2" & i).Value
If Range("C" & i + 1).value <> Range("C" & i).value Then 'もし次の行が違う名
Range("任意セル" & j).Value = Range("A" & i).Value '列1
Range("任意セル" & j).Value = Range("B" & i).Value '列2
Range("任意セル" & j).Value = cnt '数字合計
j = j + 1 '出力行カウントアップ
cnt = 0
End If
Next
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは!
>同じ言葉が含まれているもの(りんご・青りんご)は・・・
とありますが、A列の番号だけを見て同じ番号の場合は同類とします。
一例です。(こちらで勝手にコードを考えていますので元のコードとはかけ離れたものになっています)
元データはSheet1にあり、Sheet2に表示するようにしてみました。
Sub test()
Dim i As Long, j As Long, k As Long, ws1 As Worksheet, ws2 As Worksheet
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
ws2.Cells.ClearContents
ws1.Columns(1).Copy ws2.Cells(1, 1)
k = ws2.Cells(Rows.Count, 1).End(xlUp).Row
Range(ws2.Cells(2, 1), ws2.Cells(k, 1)).Sort key1:=ws2.Cells(1, 1), order1:=xlAscending
For j = k To 2 Step -1
If WorksheetFunction.CountIf(ws2.Columns(1), ws2.Cells(j, 1)) > 1 Then
ws2.Rows(j).Delete
End If
Next j
For k = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row
ws2.Cells(1, Columns.Count).End(xlToLeft).Offset(, 1) = _
WorksheetFunction.VLookup(ws2.Cells(k, 1), Range(ws1.Columns(1), ws1.Columns(2)), 2, False)
Next k
For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
k = WorksheetFunction.Match(ws1.Cells(i, 1), ws2.Columns(1), False)
ws2.Cells(k, k) = ws2.Cells(k, k) + ws1.Cells(i, 3)
Next i
End Sub
※ For~Nextを多用していますので、若干時間がかかると思います。
参考になりますかね?m(_ _)m
No.1
- 回答日時:
【理想】実行前
******************************
番号 名前 個数
001 りんご 1
002 ばなな 2
003 いちご 3
001 青りんご 2
******************************
どれが1列目、2列目なのか。
どれが1行目、2行目なのか。
どれがセルの中身なのか、
分かりにくい。
cnt = cnt + Range("列2" & i).Value
とあるから、「個数」が2列目のようだが、
では「番号」は何? 行番号でもなさそうだし。
番号が振ってあるのなら、名前ではなく番号で同じかどうか判断できるのでは?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) 配列の勉強をしています。使用する変数の意味、検索条件の書き方が難しいです。 2 2022/09/15 14:06
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) Excelのマクロ ブック間である範囲をコピー Workbooks(“a.xlsx“).Sheets 3 2022/05/12 17:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
IIF関数の使い方
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
VBAのFind関数で結合セルを検索...
-
VBA 何かしら文字が入っていたら
-
【VBA】2つのシートの値を比較...
-
targetをA列のセルに限定するに...
-
Changeイベントでの複数セルの...
-
VBAを使って検索したセルをコピ...
-
VBAコンボボックスで選択した値...
-
データグリッドビューの一番最...
-
別シートのデータを参照して値...
-
vba 2つの条件が一致したら...
-
URLのリンク切れをマクロを使っ...
-
VBA 値と一致した行の一部の列...
-
マクロ 最終列をコピーして最終...
-
エクセル 2つの表の並べ替え
-
エクセルについて
マンスリーランキングこのカテゴリの人気マンスリー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列のセルに限定するに...
おすすめ情報