Visual Basic, если активная ячейка содержит текст «A», затем вставьте 1 в ячейку вправо
-
27-10-2019 - |
Вопрос
Задача заключается в том, что выбранная в настоящее время ячейка содержит «A», затем вставьте 1 в ячейку вправо и (из -за данных ниже) вставьте новую строку ниже и заполните ячейку ниже 1 с помощью 0.
Поэтому, если ячейка содержит «А», то когда макрос работает, она уходит; 1 0
С 1 в ячейке справа от A и 1 находится в новом ряду, в ячейке непосредственно ниже 1.
Код, который у меня есть в настоящее время;
Sub ChangeAToCells()
Dim text As String
text = "a"
Dim text0 As String
text = "b"
Dim text1 As String
text = "0"
Dim text2 As String
text = "1"
If ActiveCell = text Then
ActiveCell.Formula = text1
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Offset(1, 0).Select
ActiveCell.Formula = text2
End If
End Sub
Проблемы ясны, выбор ячеек не работает, и я не могу правильно выходить из петли,
Решение
Sub ChangeAToCells()
If ActiveCell = "a" Then
ActiveCell.Offset(0, 1) = 1
ActiveCell.Offset(1).EntireRow.Insert
ActiveCell.Offset(1, 1) = 0
End If
End Sub
Другие советы
Что вы ожидаете от этого кода? Сначала вы назначаете 4 различных значения одной и той же строке, затем сравниваете ячейку со строкой, и если они одинаковы, вы устанавливаете значение двух ячеек для значений двух строк, которые вы не инициализировали.
Я думаю, вы хотели инициализировать text0
, text1
а также text2
Кроме того, вместо инициализации text
четыре раза.
Я не понимаю, что вы имеете в виду под «Редактировать петлю». В вашем коде нет цикла.