|
>Set CVr = Worksheets("CVPARTS").Range("H:H").Find("組立図", , , xlPart, , , False, False)
これで、"組立図"と言う文字を検索しています。
>'ユニットマスタ -シートのG列のなかで、CVrとおんなじセルを検索
>Set F = ws.Range("G:G").Find(CVr.Value, , , xlPart, , , False, False)
なのに、同じ文字を検索するのに何でセルを参照するのでしょうか?
素直に文字を検索するのが良いです。
Set F = ws.Range("G:G").Find("組立図", , , xlPart, , , False, False)
Dim 検索文字 as string
検索文字 = "組立図"
と、すれば
Set F = ws.Range("G:G").Find(検索文字, , , xlPart, , , False, False)
と、書けます。
>'上記のコードを繰り返す
>st = CVr.row
>Set CVr = Worksheets("CVPARTS").Range("H:H").FindNext(CVr)
別シートに対して、FindNextは使えないと思います。
検証してないけど、
Dim ws As Worksheet
Dim F As Range
Dim SavRow As Long
Dim 検索範囲 As String, 検索文字 As String
検索文字 = "組立図"
For Each ws In ActiveWorkbook.Worksheets
If ws.Name = "CVPARTS" Then
検索範囲 = "H:H"
ElseIf InStr(1, ws.Name, "ユニットマスター") <> 0 Then
検索範囲 = "G:G"
End If
With ws.Range(検索範囲)
Set F = .Find(検索文字, , , xlPart, , , False, False)
If Not F Is Nothing Then
SavRow = F.Row
Do
ws.Cells(F.Row, 7).Interior.Color = RGB(0, 255, 0)
Set F = .FindNext(F)
Loop Until F.Row = SavRow
End If
End With
Next
|
|