初めて質問します。
VBAについて教えて下さい。
初心者です。
A列 B列
1行目 りんご 2
2行目 れもん 3
3行目 ばなな 1
4行目 メロン 4
・ ・ ・
・ ・ ・
・ ・ ・
上記のような表を、
下記のように別シートに作成したいです。
A列
1行目 りんご
2行目 りんご
3行目 れもん
4行目 れもん
5行目 れもん
6行目 ばなな
7行目 メロン
8行目 メロン
9行目 メロン
10行目 メロン
・ ・
・ ・
・ ・
B列に指定した回数分、
A列を行コピーしたいです。
元のシートは、最大70行目まであります。
いろいろ試してみましたが、うまくいきません。
どのようにすれば良いでしょうか?
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
No.1です。
↓の画像のような配置になっているとします。
Sheet2のC列はご自身で回数を入力してください。
Sheet2のB2セルには
=IFERROR(VLOOKUP(A2,Sheet1!A:B,2,0),"")
という数式を入れフィルハンドルで下へずぃ~~~!っとコピーしています。
VBAのコード(標準モジュール)のコードは
Sub Sample2()
Dim i As Long, k As Long
Dim cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet3")
wS.Range("A:A").ClearContents
With Worksheets("Sheet2")
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(i, "B") <> "" Then
For k = 1 To .Cells(i, "C")
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(i, "B")
Next k
End If
Next i
End With
End Sub
にしてみてください。m(_ _)m
No.4
- 回答日時:
例)
Sub megu()
Dim r1 As Range, r2 As Range
Set r2 = Worksheets("Sheet2").Range("A1")
With Worksheets("Sheet1")
For Each r1 In .Range("A1", .Cells(Rows.Count, "A").End(xlUp))
If r1.Offset(, 1).Value <> "" Then
r2.Resize(r1.Offset(, 1)).Value = r1
Set r2 = r2.Offset(r1.Offset(, 1).Value)
End If
Next
End With
Set r2 = Nothing
End Sub
No.3
- 回答日時:
No.1途中で切れてしまったから、再度。
Sub WK()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Set Sh1 = Worksheets("Sheet1")
Set Sh2 = Worksheets("Sheet2")
END1 = Sh1.Range("A65536").End(xlUp).Row '最終行取得
Cnt3 = 1
For Cnt1 = 2 To END1
For Cnt2 = 1 To Sh1.Range("B" & Cnt1).Value
Cnt3 = Cnt3 + 1
Sh2.Range("A" & Cnt3).Value = Sh1.Range("A" & Cnt1).Value
Next Cnt2
Next Cnt1
Application.StatusBar = False
End Sub
No.2
- 回答日時:
1行目にタイトルが入ってると仮定。
シート名は、Sheet1からSheet2へコピーと仮定
Sub WK()
Dim Sh1 As Worksheet
Dim Sh2 As Worksheet
Set Sh1 = Worksheets("Sheet1")
Set Sh2 = Worksheets("Sheet2")
END1 = Sh1.Range("A65536").End(xlUp).Row '最終行取得
Cnt3 = 1
For Cnt1 = 2 To END1
For Cnt2 = 1 To Sh1.Range("B" & Cnt1).Value
Cnt3 = Cnt3 + 1
Sh2.Range("A" & Cnt3).Value = Sh1.Range("A" & Cnt1).Value
Next Cnt2
Next Cnt1
E1:
Application.S
No.1
- 回答日時:
こんにちは!
元データはSheet1にあり、Sheet2に表示するとします。
一例です。標準モジュールにしてください。
Sub Sample1()
Dim i As Long, k As Long
Dim cnt As Long, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Range("A:A").ClearContents
With Worksheets("Sheet1")
For i = 1 To .Cells(Rows.Count, "A").End(xlUp).Row
If .Cells(i, "B") > 0 Then '//←念のため//
For k = 1 To .Cells(i, "B")
cnt = cnt + 1
wS.Cells(cnt, "A") = .Cells(i, "A")
Next k
End If
Next i
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Visual Basic(VBA) vbaマクロについて 【1.csv】をもとに【商品.csv】に有るものを【有り.csv】として名前を 1 2023/05/18 07:58
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Visual Basic(VBA) vbaマクロについて 次のようなマクロを組みたいです。 自分は初心者なので全くわかりません。 詳しく 8 2023/05/18 18:38
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
IIF関数の使い方
-
VBAでのリスト不一致抽出について
-
VBマクロ 色の付いたセルを...
-
マクロ 最終列をコピーして最終...
-
VBAを使って検索したセルをコピ...
-
エクセル VBA ユーザーフォー...
-
VBA A列にありB列にないものま...
-
B列の最終行までA列をオート...
-
複数処理 Worksheet_Change(ByV...
-
超難 日付に対するクロス集計
-
文字列の結合を空白行まで実行
-
VBA 値と一致した行の一部の列...
-
空白セルをとばして転記
-
エクセルVBAにて =A1=B1とすれ...
-
【VBA】2つのシートの値を比較...
-
エクセルVBA intersect colu...
-
VBAのFind関数で結合セルを検索...
-
オートフィルタをマクロで作成...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報
皆さま、早々のご回答ありがとうございます!
別パターンで確認です。
シート1に下記のデータがあるとします。
A列 B列
1行目 1 りんご
2行目 2 れもん
3行目 3 ばなな
・ ・ ・
・ ・ ・
シート2のA列に、1と入力すると、
シート2のB列にVLOOKUP関数で、りんご等を表示させ、
シート2のC列にコピー回数を入力した状態で、
シート3に先程同様のデータを作成したい場合は、
どうすればいいですか?
何度も申し訳ございません。
ご教授いただければ、大変助かります。