2014-09-15 4 views
1

У меня есть рабочий лист с 6 столбцами. Я хочу совместить слово в столбце E, и если он находится в любой ячейке в этом столбце, тогда замените весь столбец на это слово.Измените все ячейки в столбце, если найдено слово

Sub Macro8() 
    Columns("E:E").Select 
    If Columns("E:E").Select = "dog" Then Entire.Columns("E:E").Select = "dog" 
End Sub 
+0

Используйте событие «Worksheet_Change». Подробнее об этом [ЗДЕСЬ] (http://stackoverflow.com/questions/13860894/ms-excel-crashes-when-vba-code-runs/13861640#13861640) –

+0

Другой [ИНТЕРЕСНО] (http://stackoverflow.com)/questions/10714251/how-to-avoid-use-select-in-excel-vba-macros/10718179 # 10718179) Прочитайте –

ответ

1

Как я уже говорил в комментариях выше, используйте Worksheet_Change событие. Однако, если вы хотите запустить подпрограмму в своем удобстве, используйте этот код

Sub Sample() 
    Dim ws As Worksheet 
    Dim lRow As Long 

    '~~> Change this to the relevant sheet 
    Set ws = ThisWorkbook.Sheets("Sheet1") 

    With ws 
     '~~> Find Lastrow in Col E which has data 
     lRow = .Range("E" & .Rows.Count).End(xlUp).Row 

     '~~> Use Countif to check for an occurance of Dog in Col E 
     If Application.WorksheetFunction.CountIf(.Columns(5), "Dog") _ 
     Then .Range("E1:E" & lRow).Value = "Dog" 
    End With 
End Sub 
Смежные вопросы