Visual Basic, если активная ячейка содержит текст «а», затем вставьте 1 в ячейку справа - PullRequest
1 голос
/ 01 февраля 2011

Задача состоит в том, чтобы, если текущая выбранная ячейка содержала «а», затем вставить 1 в ячейку справа и (из-за данных ниже) вставить новую строку ниже и заполнить ячейку ниже 1 знаком 0.

Итак, если ячейка содержит «а», то когда макрос выполняется, он уходит;a 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

Проблемы понятны, выбор ячеек не работает, и я не могу правильно выйти из цикла,

Ответы [ 2 ]

3 голосов
/ 01 февраля 2011
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
0 голосов
/ 01 февраля 2011

Что вы ожидаете от этого кода? Сначала вы назначаете 4 разных значения одной и той же строке, затем сравниваете ячейку со строкой, и если они одинаковы, вы устанавливаете значение двух ячеек в значения двух строк, которые вы не инициализировали.

Я думаю, вы также хотели инициализировать text0, text1 и text2 вместо четырехкратной инициализации text.

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

...