2016-03-21 11 views
0

for i = 1 to 1000を使用する場合、Cell.Find関数を使用してシートの値を検索するにはどうすればよいですか?forループを使用してiの値を検索する

1から1000までの数字のいずれかがシート内にあるかどうかを確認する必要があります(行は問題ありません)。好ましくは、forループを使用します。

私は次のことをやった:

Dim i As Integer 
For i = 1 To 10 
    Cells.Find(What:="i", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _ 
     xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _, SearchFormat:=False).Activate 

Next i 

End Sub 
+0

P.S.スペースが足りないと申し訳ありません。 – Aderon

+4

'' i "'から引用符を取り除いて、 'Cells.Find(What:= i、...' – tigeravatar

+0

を@tigeravatarの正しいコメントにピギーバックするようにします。 –

答えて

0

iのただ一つのインスタンスがある場合は、あなたのために働く可能性が見つけます。

Sub UsingFind() 
    Dim i As Integer, c As Range 

    For i = 1 To 1000 
     Set c = Cells.Find(what:=i, lookat:=xlWhole) 

     If Not c Is Nothing Then 
      c.Font.Bold = 1 
     Else: 'MsgBox "Not Found" 
     End If 
    Next i 
End Sub 

iの複数のインスタンスがある場合は、何か他のものは、このような各セルをループとして、使用しなければならないであろう。例えば

x代わりiのに使用される):

Sub MoreThanOne() 
    Dim x As Integer, c As Range, rng As Range 

    Set rng = Cells.SpecialCells(xlCellTypeConstants, 23) 
    For x = 1 To 1000 
     For Each c In rng.Cells 
      If c = x Then 
       c.Font.Bold = 1 
      End If 
     Next c 
    Next x 

End Sub 
関連する問題