sheet1!a2:c5、sheet2!a2:c6を比較して、比較(シート)!d2:f8に、一致するする物は
d2:f4、一致しないものはd6:f7と、Do Until loopのネスト、IF文を使って実現したいのですが、
何回やっても、ループが回らず、上手く行きません。大変、お手数ですが、どなたか、ご存じの方、
教えて頂けないでしょうか?
コード↓
Option Explicit
Sub test1() '比較sheet
Dim i As Long, j As Long ’比較シートa2:c5に貼り付け
With Sheets("sheet1").Range("a1").CurrentRegion.Offset(1, 0)
.Resize(.Rows.Count - 1).Copy Sheets("比較").Range("a2")
End With
i = 2
Dim Flag As Long
Flag = 0
j = 2
Do Until i > Sheets("sheet2").Cells(Rows.Count, "a").End(xlUp).Row
Do Until j > Sheets("比較").Cells(Rows.Count, "a").End(xlUp).Row
Flag = 0
If Sheets("比較").Cells(j, "a") = Sheets("sheet2").Cells(i, "a") Then
Sheets("比較").Cells(j, "d") = Sheets("sheet2").Cells(i, "a")
Sheets("比較").Cells(j, "e") = Sheets("sheet2").Cells(i, "b")
Sheets("比較").Cells(j, "f") = Sheets("sheet2").Cells(i, "c")
Flag = 1
i = i + 1
Exit Do
j = j + 1
End If
If Flag = 0 Then
With Sheets("比較").Range("a1").CurrentRegion
.Cells(.Rows.Count + 1, 4) = Sheets("sheet2").Cells(i, "a")
.Cells(.Rows.Count + 1, 5) = Sheets("sheet2").Cells(i, "b")
.Cells(.Rows.Count + 1, 6) = Sheets("sheet2").Cells(i, "c")
j = j + 1
End With
End If
Loop
Loop
End Sub
No.11ベストアンサー
- 回答日時:
No.10
- 回答日時:
>ありがとうございます。
出来たらDO until loopのネストで、実現したかったのですが、すみません。下記にアップしました。
https://ideone.com/vHhYpn
Sheet2のE列
比較のG列を作業用に使っています。
もし、上記の列に値が残るのがいやでしたら、最後にその列をクリアする
処理を追記してください。
追記の方法が判らない場合は、補足してください。
ありがとうございます。すみません。最後のd10:e10、F 600 60は、なくてもいいんですが、どうやったら、削除できますか?すみません。度々。
No.9
- 回答日時:
>Do Until loopのネスト、IF文を使って実現したいのですが、
画像が良くわかりませんが(リンク先は運営が違反とするか検討中の場所なので見てません)、上記は必須条件なのでしょうか?
もしそうでないならコードは必要ないのでしょ。(と言っても詳細が不明ですけど)。
仮に課題であると言うのなら問題ですよねぇ。
検討中ではあるが結果は問い合わせた方には個別に知らされないので、結果的に良いのかダメなのかはわからないので。
回答者が記載したのであるなら何も注意はなかったのかもですが、OKWaveと繋がってた時には利用規約でもネット上の質問マナーとしても禁止でした。
近年変更されたのかは不明。
No.8
- 回答日時:
No.7
- 回答日時:
画像のアップありがとうございました。
いくつか不明点です。
1.比較シートのD列~F列へ出力する件ですが、
①商品名が一致するものは、Sheet1の商品名、価格、売上を、2行から出力する。
②上記以外の場合、
Sheet1になくSheet2にある商品は、Sheet2の商品名、価格、売上を出力する。
Sheet1にありSheet2にない商品は、Sheet1の商品名、価格、売上を出力する。
出力開始行は、①で出力した商品の最後の行から空行を3行いれた次の行からとする。
上記の仕様で良いでしょうか。
2.Sheet1内で商品の重複はない前提とする。
(Sheet2も同様)
この前提で良いでしょうか。
はい。そうです。すみません。sheet1!c1、sheet2!c1は、売上ではなく、個数が正しいです。間違ってすみません。5時間近く、やってると、訳が、分からなくて、ミスにも気付きませんでした。
No.5
- 回答日時:
良く理解してないですが。
(ジジィなので・・・)If Sheets("比較").Cells(j, "a") = Sheets("sheet2").Cells(i, "a") Then
Sheets("比較").Cells(j, "d") = Sheets("sheet2").Cells(i, "a")
Sheets("比較").Cells(j, "e") = Sheets("sheet2").Cells(i, "b")
Sheets("比較").Cells(j, "f") = Sheets("sheet2").Cells(i, "c")
Flag = 1
i = i + 1
Exit Do '← ここで内側のループを抜けると
j = j + 1 '← この加算はされないのですが、そこは狙っての事ですか?
End If
うーん。自分でも、分かりません。他のサイトを、真似て、自分流に、Do Until Loopで、出来ないかとしていて、何十回と、f8で、確認したのですが、ループが、回らず、本当に、本当に、困って、質問しました。なかなか、これっと、言った、解答が来ないので、全然、分かりません。
No.3
- 回答日時:
>Snipping toolで、pcのデスクトップ上に表示させ、スマホで、撮影しました。
スマホを使ってはいけません。
excelでファイルを開いて、シートの内容を表示します。
表示した状態で、snipping toolを起動し、表示した画面をキャプチャします。キャプチャした内容をファイルに保存します。(拡張が.PNGのファイルが保存されます)
その内容を確認後、gyazo.comへアップします。
キャプチャ方法は「snipping tool 使い方」で検索してみてください。
以下、参考URLです。
https://www.pasoble.jp/windows/10/snipping-tool. …
https://otona-life.com/2022/04/07/112709/
No.2
- 回答日時:
画像が不鮮明なので全くわかりません。
gyazo.comへアップされてはいかがでしょうか。
以下のURLはgyazo.comへアップしたサンプルです。
https://gyazo.com/1add33c908cb4e04259f54dafff27dcf
(画像の内容は本件とは関係ありません)
windows アクセサリにSnipping toolがあります。
Snipping toolを使用すると簡単に画面のキャプチャが行えます。
(上記URLの画像もSnipping toolで作成したものです)
画面のキャプチャを行う際はSnipping toolを使うことを推奨いたします。
尚、セルの正確な位置を知ることが必須になりますので、キャプチャする際は、
行、列のガイドを必ず含めてキャプチャしてください。
(赤線で囲んだ部分です)
Snipping toolで、pcのデスクトップ上に表示させ、スマホで、撮影しました。このサイトで画像が粗くて、いつも困っていて、gyazo.comにアップして、本当に上手く行くのでしょうか?やった事ないので、やり方分かりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) vbaのvlookup関数エラー原因を教えていただけないでしょうか。 3 2022/04/25 16:16
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
このQ&Aを見た人はこんなQ&Aも見ています
-
餃子を食べるとき、何をつけますか?
みんな大好き餃子。 ふと素朴な疑問ですが、餃子には何をつけて食べますか? 王道は醤油とお酢でしょうか。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
お風呂の温度、何℃にしてますか?
みなさん、家のお風呂って何℃で入ってますか? ぬるめのお湯にゆったり…という方もいれば、熱いのが好き!という方もいるかと思います。 我が家は平均的(?)な42℃設定なのですが、みなさんのご家庭では何℃に設定していますか?
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
マクロ実行後に別シートの残像...
-
Changeイベントで複数セルへの...
-
VBAで変数の数/変数名を動的に...
-
Count Ifのセルの範囲指定に変...
-
ExcelのVBマクロを、バックグラ...
-
RemoveDuplicatesメソッドにつ...
-
グラフマクロで系列を変数にす...
-
VBA 別ブックからの転記の高速...
-
100万件越えCSVから条件を満た...
-
2010 Excel VBA 測定結果を貼...
-
VBA 重複チェック後に値をワー...
-
GASでチェックボックスを一括of...
-
VBAでのピボットテーブルの範囲...
-
エクセル マクロ VBA Range Val...
-
テキストボックスから、複数の...
-
VBA 空白行に転記する
-
ExcelのVBA ListBox.RowSource...
-
FindNextがうまくいかない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
VBA 空白行に転記する
-
マクロ実行後に別シートの残像...
-
VBA別シートの最終行の次行へ転...
-
Changeイベントで複数セルへの...
-
Count Ifのセルの範囲指定に変...
-
ExcelのVBマクロを、バックグラ...
-
VBA 実行時エラー1004 rangeメ...
-
VBAで変数の数/変数名を動的に...
-
VBA 別ブックからの転記の高速...
-
Excel VBA オートフィルターで...
-
100万件越えCSVから条件を満た...
-
複数シートの複数列に入力され...
-
【VBA】特定の条件でセルをコピー
-
Excel2013で切り取り禁止
-
楽天RSSからエクセルVBAを使用...
-
アクセスからエクセルへ出力時...
-
グラフマクロで系列を変数にす...
-
FindNextがうまくいかない
おすすめ情報
写真、添付の為
https://gyazo.com/13b8620c60c394d2fab3b05cd803e8f0