[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『2つのブックを比較して処理』(momo)
AブックとBブックがある。
アクティブになってるのはBブックでAブックは開く
AブックのB列のデータとBブックのB列のデータ情報が一致した場合、
AブックのC列のデータに文字列でOKと入力するには
VBAでどのように書けばいいでしょうか。
Aブック
A B C
1 a c
2 a f
3 a d
Bブック
A B C
1 a a
2 a c
3 a a
上記の場合、"c"が一致しているのでAブックを
以下にしたい。
A B C
1 a c OK
2 a f
3 a d
宜しくお願い致します。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
おはよ〜ございます。 ^^ 様々な方法が有るとは思いますが下記の様な事でも 出来なくはないかと。。。思います。 1.Aブックが有れば開く(無ければ終了) 2.Aブックの最初の行から最後までB列の値をBブック のB列の値(最初から最後まで)と照合して同じで あればAブックの同じ行のC列にOKを書き込む 3.Aブックを保存して閉じる 4.必要で有ればオブジェクトの解放 m(_ _)m (隠居じーさん) 2020/01/03(金) 09:08
2.Aブックの最初の行から最後までB列の値をBブック
のB列の値(最初から最後まで)と照合して同じで
あれば
ここが自分にはVBAで書くには難易度が高く挫折してしまいました。
(momo) 2020/01/03(金) 09:55
2回ループを回すか、ループは一回で Matchを使うとかで行けるとは思いますが、 ご説明した方が良いでしょうか、サンプルを アップした方が良いでしょうか。 両方。。。でせうか ^^; でわでわ m(_ _)m (隠居じーさん) 2020/01/03(金) 11:22
とりあえず。。。こんな感じかと。 A、Bブックは同じフォルダ内 両方とも処理対象シート名は Sheet1 で
Option Explicit Sub OneInstance() Dim i As Long Dim j As Long Dim Wsb As Worksheet Dim AB As Workbook Dim BB As Workbook Dim Anm As String Set BB = Workbooks("B.xlsm") Set Wsb = BB.Worksheets("Sheet1") Anm = Dir(BB.Path & "\A.xls*") If Anm <> "" Then Set AB = Workbooks.Open(BB.Path & "\" & Anm) With AB.Worksheets("Sheet1") For i = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row For j = 1 To Wsb.Cells(Wsb.Rows.Count, 1).End(xlUp).Row If .Cells(i, 2) = Wsb.Cells(j, 2) Then .Cells(i, 3) = "OK" End If Next Next End With AB.Close True End If Set Wsb = Nothing Set AB = Nothing Set BB = Nothing End Sub (隠居じーさん) 2020/01/03(金) 11:34
考え方のヒントとして。
手作業だったらどうすればできる?と考えるとコードの参考になりそうです。
100個のデータ対100個のデータだと思いつかないなら、
3個対3個で考えてみたり
3個対1個や、1個対3個で考えたり
規模を小さくして手順を考え それから規模を拡大して一般化するのは、使える方法です。
(−佳−) 2020/01/03(金) 11:52
ありがとうございます!
(momo) 2020/01/03(金) 16:46
1)Aブックを開く
2)C列に数式を挿入 =IF(COUNTIF(…
3)C列をコピー
4)そのまま値貼り付け
5)Aブックを保存して閉じる
( マナ) 2020/01/03(金) 22:50
■1
横からですが、他の部分は出来そうなのであれば、どこで躓いているか説明するためにも、動かないまでもとりあえず現状のコードを提示頂いた方がよいと思います。
■2
確認ですが、質問だとB列同士しかチェックしないような書きぶりですから、下記の様なケースであれば「OK」で良いのでしょうか?
【Aブック】 【Bブック】 __A__B__C__ __A__B__C__ 1 a c 1 a a 2 a f 2 a c 3 a d 3 a a 4 b b 4 a b
↓
【Aブック】 __A__B__C__ 1 a c OK 2 a f 3 a d 4 b b ? ←【Bブック】の該当シートのA列は一致してないが、B列に「b」が存在する場合は?
■3
今回のケースで言えば実際には
Aブックの【○○シート】に属するB列のセル ←比較→ Bブックの【××シート】に属するB列全体
ということになるので、対象"シート”を意識(説明)された方がよいと思います。
(もこな2) 2020/01/04(土) 11:21
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.