こんにちは。いつもお世話になっております。
VBAを勉強しているのですが、まだまだわからないことだらけでして教えていただきたいです。
他のかたの質問や回答を見ているのですが、ぴたっとハマるものがなく。
どなたか教えて頂けると嬉しいです。どうぞよろしくお願いいたします。
【やりたいこと】
・月次報告書のB2に対象月を入力し該当の月別シートを検索したい
・月別シートの該当商品カテゴリがある行をピックアップして月次報告書シートに貼り付けたい
【条件】
貼り付け元の月別シート
商品項目列:I列
該当商品名:ゼリー パイ デコレーション の3種類
貼り付けたい項目:B(ID),C(作業内容),E(工数),F(依頼日),G,H 列の6項目
貼り付け先の月次報告シート
B3:G3にタイトルが入っており、4行目以降に転記をしていきたい。
No.1ベストアンサー
- 回答日時:
こんにちは
不明点は適当ですが、こんな感じでしょうか?
Sub Q12864040()
Dim sht As Worksheet, sname
Dim tmp As String
Dim rw As Long, n As Long
sname = Split("ゼリー,パイ,デコレーション", ",")
With Worksheets("月次報告書")
tmp = .Range("B1").Text
For Each sht In Worksheets
If sht.Name = tmp Then Exit For
Next sht
If sht Is Nothing Then MsgBox "指定シートは存在しません": Exit Sub
.Cells(4, 2).Resize(Rows.Count - 3, 6).ClearContents
n = 4
For rw = 2 To sht.Cells(Rows.Count, 9).End(xlUp).Row
tmp = sht.Cells(rw, 9).Text
If tmp = sname(0) Or tmp = sname(1) Or tmp = sname(2) Then
.Cells(n, 2).Resize(, 2).Value = sht.Cells(rw, 2).Resize(, 2).Value
.Cells(n, 4).Resize(, 4).Value = sht.Cells(rw, 5).Resize(, 4).Value
n = n + 1
End If
Next rw
End With
End Sub
ありがとうございます!!
コピっただけで出来てしまいました。
中身でまだ理解できていない部分があるので調べてみようと思います!
本当にありがとうございました。
No.2
- 回答日時:
こんばんは
>VBAを勉強しているのですが
すでに処理コードが提示されていますが、
条件の作り方の参考の為、少し違う方法も
該当シートが無い場合処理されません
Sub test()
Dim ws As Worksheet
Dim V(), r
Dim n As Long
For Each ws In Worksheets
If ws.Name = Worksheets("月次報告書").Range("B1").Text Then
For Each r In Range(ws.Cells(2, "I"), ws.Cells(Rows.Count, "I").End(xlUp))
If r.Value <> "" And "$ゼリー$パイ$デコレーション" Like "*" & r.Value & "*" Then
ReDim Preserve V(6, n)
V(0, n) = r.Offset(, -7)
V(1, n) = r.Offset(, -6)
V(2, n) = r.Offset(, -4)
V(3, n) = r.Offset(, -3)
V(4, n) = r.Offset(, -2)
V(5, n) = r.Offset(, -1)
n = n + 1
End If
Next
Worksheets("月次報告書") _
.Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(V, 2) + 1, UBound(V, 1)) _
= WorksheetFunction.Transpose(V)
Exit For
End If
Next
End Sub
$ゼリー$パイ$デコレーションの$は単なるシンボルです
無くても良いですが、この方法( If Like)ですとゼリーパイなどのキーワードでも抽出してしまいますので一応$を付けました
r.Value <> "" は Like の弱点です (空白の場合* & "" & * となり
すべてがTrueとなる)
回答が出ているので参考程度で
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
都道府県穴埋めゲーム
都道府県の名前を1人1つずつ投稿してください。全ての都道府県が出たら締め切ります!
-
【VBA】元のシート内の文字列を別シートと比較し、一致したら元のシートの別のセルへ転記する方法。
Excel(エクセル)
-
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
-
4
VBA 値と一致した行の一部の列のデータを転記について教えてください
Visual Basic(VBA)
-
5
excel VBA 2つのシートの特定の列を比較して同じ値のセルがあったらその行を上書きしたい
Excel(エクセル)
-
6
VBA シート名が一致した場合の転記内容について
Visual Basic(VBA)
-
7
VBA 別ブックから条件に合うものを転記したいです
Visual Basic(VBA)
-
8
エクセルVBA Ifでシート名が合致したら別ファイルから転記する場合のElse IfとForの書き方
Visual Basic(VBA)
-
9
VBA セルの値と同じ名前のシートにデータを補填するやり方を教えてください エクセルのブックがありま
Excel(エクセル)
-
10
完全一致したら代入するマクロを教えてください
Excel(エクセル)
-
11
複数条件が一致で別シートに転記【エクセルVBA】
Excel(エクセル)
-
12
【VBA】特定の値が入った行をコピーして別シートに貼り付ける方法をおしえていただきたいです。
Excel(エクセル)
-
13
VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください
Excel(エクセル)
-
14
別のシートから値を取得するとき
Visual Basic(VBA)
-
15
VBAを使って検索したセルをコピーして別の場所に貼り付ける。
Visual Basic(VBA)
-
16
VBA 条件が一致した場合のみコピーする
その他(ビジネス・キャリア)
-
17
VBAで別ブックの列を検索し、該当があれば行ごと新規ブックにコピーしたい。
Excel(エクセル)
-
18
Excel VBA、 別ブックの最終行セルへのコピー&値ペースト
Visual Basic(VBA)
-
19
エクセルマクロでシート名を条件にする方法
Excel(エクセル)
-
20
VBA 列全体を別シートの列と比較し、同じ値がある行の、右端に値をコピーする方法について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelのマクロで該当処理できな...
-
ユーザーフォームに入力したデ...
-
実行時エラー'1004': WorkSheet...
-
VBAで同じシート名のコピー時は...
-
エクセルのシート名変更で重複...
-
VBAで指定シート以外の選択
-
Excel VBA 複数行を数の分だけ...
-
エクセルのマクロでアクティブ...
-
【ExcelVBA】全シートのセルの...
-
IFステートの中にWithステート...
-
ブック名、シート名を他のモジ...
-
シートが保護されている状態で...
-
XL:BeforeDoubleClickが動かない
-
【VBA】指定した検索条件に一致...
-
エクセルVBA 変数への代入がう...
-
VBA 検索して一致したセル...
-
エクセルVBA ListBoxの並び...
-
範囲を指定して別シートにコピペ
-
EXCEL VBAで複数シートから該当...
-
vba 環境依存文字がListViewボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
別のシートから値を取得するとき
-
ブック名、シート名を他のモジ...
-
実行時エラー'1004': WorkSheet...
-
Excelマクロのエラーを解決した...
-
XL:BeforeDoubleClickが動かない
-
シートが保護されている状態で...
-
エクセルのシート名変更で重複...
-
実行時エラー1004「Select メソ...
-
VBAで同じシート名のコピー時は...
-
エクセルで通し番号を入れてチ...
-
同じ作業を複数のシートに実行...
-
Excel VBA リンク先をシート...
-
ExcelのVBAのマクロで他のシー...
-
Vba UserformからExcelシートの...
-
【Excel VBA】Worksheets().Act...
-
VBA 存在しないシートを選...
おすすめ情報