Sheet1Sheet2Excel-VBAで2つの別々の列の列の文字列の違いを比較するにはどうすればよいですか?
私は2枚の画像は、私は私のExcel文書(シート1、シート2)から撮影したことをリンクしていとりわけ
は、ここで基本的には簡単な説明ですが、私はちょうど私のマクロは部品番号(列Cを比較したいです)を両方のシートから削除し、その違いを確認します。また、両方のシート間で文字列の違いが検出されると、BOM-listのシート上の行が強調表示され、パートナンバー(C列)の違いをユーザーに示します。しかし、それは画像に見られるように問題もあります。空の文字列を比較して間違った結果を与えるのを防ぐために、ループが処理しなければならない "スペース"を持つ行があります。
ご迷惑をかけて申し訳ございませんが、私の貧弱な英語のコマンドと説明があなたには分かりません。誰かがこれについて私を導くことができるのですか?私はむしろどこでどのように開始するのかについては客観的ではなく、私はエクセルVBAプログラミングの知識についての事前知識なしに1週間以内にこれを完了しなければなりません。
更新日:私は誰かが見てみると、私が代わりに列Cの範囲の値のPに列Aの行全体を強調するためにコードを変更することができますどのように私にあなたの意見を与えることができます私のポストを更新しました
違いのみ?
Sub differences()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim lastRow1 As Integer, lastrow2 As Integer
Dim rng1 As Range, rng2 As Range, temp As Range, found As Range
Application.ScreenUpdating = False
Set ws1 = ThisWorkbook.Sheets("Sheet1")
Set ws2 = ThisWorkbook.Sheets("Sheet2")
lastRow1 = ws1.Range("A" & Rows.Count).End(xlUp).Row
lastrow2 = ws2.Range("A" & Rows.Count).End(xlUp).Row
Set rng1 = ws1.Range("C21:C" & lastRow1)
Set rng2 = ws2.Range("C21:C" & lastrow2)
For Each temp In rng1
Set found = Find_Range(temp.Value, rng2, , xlWhole)
If found Is Nothing Then
temp.Interior.ColorIndex = 3
End If
Next temp
For Each temp In rng2
Set found = Find_Range(temp.Value, rng1, , xlWhole)
If found Is Nothing Then
temp.Interior.ColorIndex = 3
End If
Next temp
End Sub
Function Find_Range(Find_Item As Variant, Search_Range As Range, Optional LookIn As Variant, Optional LookAt As Variant, Optional MatchCase As Boolean) As Range
Dim c As Range
Dim firstAddress As String
If IsMissing(LookIn) Then LookIn = xlValues 'xlFormulas
If IsMissing(LookAt) Then LookAt = xlPart 'xlWhole
If IsMissing(MatchCase) Then MatchCase = False
With Search_Range
Set c = .Find(What:=Find_Item, LookIn:=LookIn, LookAt:=LookAt, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=MatchCase, SearchFormat:=False)
If Not c Is Nothing Then
Set Find_Range = c
firstAddress = c.Address
Do
Set Find_Range = Union(Find_Range, c)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
End Function
にこれを追加する行
試みをハイライトとして、(少なくとも私にとっては)イメージはレジスタせずに到達できない
EDIT
... –
@Tiagoカルドーゾもう一度やり直してもらえますか? – Vivian
@Vivian私はちょうど試みたが、まだ登録する必要がある –