2016-03-21 2 views
0

Если я использую for i = 1 to 1000, как использовать функцию Cell.Find для поиска значения i в моем листе?Использование цикла 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 правильный комментарий, потому что, как написано, он будет искать буквенную строку '[строчная буква I]' в каждом цикле. –

ответ

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 
Смежные вопросы