1
findメソッドを使用して、異なるシートの2つの列(AとB)を比較しました。列Aは更新された列であり、列Bはコピーされた列です。コードはループし、列と一致するケースを検索します。列Aに一意の値がある場合は、列Bにコピーされます。ただし、一意の値が列Bに自動的には表示されません。列Aの一意の値のセルをクリックした場合のみ列Bにコピーしてください。Findメソッド固有の値が列に自動的に表示されない
なぜ自動的に更新できないのか分かりますか?
コード列Aに:
Private Sub Worksheet_SelectionChange(ByVal target As Range)
If target.Column = 9 Then
fabric = ActiveCell.Value
Module4.ChkFabric (fabric)
End If
End Sub
私は、列Bにコピーするために、モジュールを使用しています
Sub ChkFabric(ByRef fabric As String)
Dim Rng, TgtC, ResC As Range
Dim PrePlan As Worksheet
Set PrePlan = Worksheets("Pre Master Plan")
With PrePlan
Set ResC = .Range("A:A")
endrow = .Cells(PrePlan.Rows.Count, "A").End(xlUp).Row
End With
With ResC
Set Rng = .Find(what:=Trim(fabric), LookIn:=xlValues, lookat:=xlWhole,
searchorder:=xlByRows, searchdirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Else
PrePlan.Cells(endrow + 1, 1) = fabric
End If
End With
End Sub
このコードでは、2つの列の比較のみが可能ですか?なぜなら、私のワークブックでは、複数の列を列Bと比較する必要があるからです。モジュールにコードを書き込んだのはなぜですか? –
A1:A&rowcountから次の範囲の範囲をデータ範囲に拡張するだけで、 Application.WorksheetFunction.CountIf(範囲(データ範囲)、currentRowValue) – Valli
申し訳ありませんが私の誤りは、複数のワークシートの列が列Bと比較することを意味していました –