Visual Basic, если активная ячейка содержит текст «A», затем вставьте 1 в ячейку вправо

StackOverflow https://stackoverflow.com/questions/4856617

Вопрос

Задача заключается в том, что выбранная в настоящее время ячейка содержит «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 четыре раза.

Я не понимаю, что вы имеете в виду под «Редактировать петлю». В вашем коде нет цикла.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top