2017-01-04 6 views
1

Я ищу код для выполнения инструкции, когда ячейка содержит номер «1».Как сделать «Если ячейка содержит» в VBA

Я пользуюсь этим кодом, находящимся в сети.

Dim celltxt As String 
celltxt = ActiveSheet.Range("C6").Text 
If InStr(1, celltxt, "1") Then 
MsgBox ("Yes") 
Else 
MsgBox ("no") 
End If 

Однако эта работа, если она только считывает ячейку C6. Как установить его таким образом, чтобы он считывал диапазон ячеек из C2: C5000. Как и моя ячейка, D2 покажет «да», когда ячейка C2 показывает «1», а ячейка D3 показывает «Нет», когда Cell C3 показывает другое число ?.

Спасибо за большую помощь

Хоро

+5

Используйте петля. Указанный код указывает только одну ячейку. Вы, скорее всего, захотите перебрать диапазон ячеек. Вы также можете рассмотреть относительную формулу, содержащую условное выражение вместо кода. –

ответ

0

вы можете избежать зацикливания таким образом:

Columns(3).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers).Offset(, 1).FormulaR1C1 = "=IF(RC[-1]=1,""yes"",""no"")" 

и если вы хотите, чтобы избавиться от формул:

With Columns(3).SpecialCells(XlCellType.xlCellTypeConstants, xlNumbers).Offset(, 1) 
    .FormulaR1C1 = "=IF(RC[-1]=1,""yes"",""no"")" 
    .value = .value 
End With 
+0

Я попытался связать вашу формулу intomy vba, она не работает, я не слишком уверен, почему. – HoroHoro

+0

Я попытался связать вашу формулу с моей vba, она не работает, я не слишком уверен, почему. Мой код выглядит следующим образом. С столбцами (3) .SpecialCells (XlCellType.xlCellTypeConstants, xlNumbers) .Offset (, 1) .FormulaR1C1 = "= IF (RC [-1] = 1 Затем" rng = mRng Sheet1.Range ("A" & rng .Row & ": N" & rng.Row) .Interior.Color = 5287936. Я попытался импровизировать его, выделив его зеленым, но не могу работать. Что не так? – HoroHoro

+0

Вы должны ввести его в свой VBA так же, как я его написал Дайте мне знать – user3598756

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