2013-09-18 3 views
2

В Excel VBA, когда вы делаете range.find, вы можете получить result.address. Есть ли другие варианты, чем .address, которые мы можем получить из результата? Я не могу найти слово для поиска в Google. Было бы неплохо, если бы мы могли получить другую информацию, такую ​​как result.col или что-то в этом роде. Дополнительные параметры не отображаются в окне кода для результата.Каковы другие возможности, которые мы можем получить из результата range.find?

+0

Результат поиска() - это объект Range (см. Http://msdn.microsoft.com/en-us/library/office/ff838238.aspx) или ничего, если никаких хитов не было. –

+0

Спасибо Тиму, это имеет смысл. :) – Jay

ответ

5

Вы можете использовать полученный результат, чтобы получить остальное. Например, если вы используете код ниже, и если вы найдете совпадение, вы можете получить остальную информацию. См. Снимок экрана.

Код

Sub Sample() 
    Dim oSht As Worksheet 
    Dim strSearch As String 
    Dim aCell As Range 

    On Error GoTo Err 

    '~~> Set this to the relevant sheet 
    Set oSht = Sheets("Sheet1") 

    '~~> Search String 
    strSearch = "Sid" 

    '~~> Do the Find 
    Set aCell = oSht.Cells.Find(What:=strSearch, LookIn:=xlFormulas, _ 
    LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _ 
    MatchCase:=False, SearchFormat:=False) 

    '~~> If Found 
    If Not aCell Is Nothing Then 
     Debug.Print aCell.Row  '<~~ Give the Row 
     Debug.Print aCell.Column '<~~ Gives the Column 
     '~~> AND SO ON 
    End If 
    Exit Sub 
Err: 
    MsgBox Err.Description 
End Sub 

Скриншот

enter image description here

Совет

Вы можете найти THIS interestin g читать.

+2

Range.Find() возвращает объект диапазона. Если вы используете технику Сида и присваиваете 'aCell' результат метода' .Find() ', то вы можете использовать его так, как если бы это был объект Range, на самом деле это объект Range :) и +1 для Sid для Хорошее визуальное объяснение –

+0

Спасибо Сиду, я смог понять это после нескольких исследований, но ваше сообщение объясняло это еще более ясным. Я не знаю, как вы можете отображать эти дополнительные меню, такие как aCell.Activate и .AddComment, хотя я пробовал это на своей кодовой странице, но в нем нет выпадающего списка дополнительных параметров. :) – Jay

+0

Это называется intellisense , Когда вы определяете 'acell' как диапазон, а затем tpye' aCell' и кладете DOT после этого, тогда вы получите это меню :) –

Смежные вопросы