#excel #vba
#excel #vba
Вопрос:
я пытаюсь создать макрос, который может:
- найдите слово «Да» во всех строках столбца E, скопируйте и вставьте его в соответствующую строку в столбце B (в той же строке)
- Объедините ячейку в столбце B с ячейкой в столбце C
Например: макрос выполняет поиск слова «Да» в столбце E, слово «Да» находится в E5, скопируйте и вставьте «Да» в B5, объедините B5 и C5 и подтвердите объединение (excell всегда отображает всплывающее окно с просьбой вручную нажать на кнопку, чтобыподтвердите объединение), перейдите к следующему поиску.
Комментарии:
1. Вы имеете в виду объединить ячейки, как в кнопке объединить ячейки, или вы имеете в виду добавить Yes к тому, что есть в C5?
Ответ №1:
Пожалуйста, попробуйте следующий код. Он ничего не будет запрашивать при объединении ячеек, и область примет значение левой ячейки (B = Yes). Если вам нужно значение в C или конкатенация между двумя ячейками, вы должны сообщить нам, что:
Sub testMergeYesWord()
Dim sh As Worksheet, lastR As Long, i As Long
Set sh = ActiveSheet 'use here the sheet you need
lastR = sh.Range("E" amp; rows.count).End(xlUp).row
For i = 2 To lastR
If UCase(sh.Range("E" amp; i).Value) = "YES" Then
sh.Range("B" amp; i).Value = sh.Range("E" amp; i).Value
Application.DisplayAlerts = False 'to avoid the message asking what value to be allocate to the merged area
sh.Range("B" amp; i amp; ":C" amp; i).merge
Application.DisplayAlerts = True
End If
Next i
MsgBox "Ready..."
End Sub
Комментарии:
1. @nikolaikolev: Разве вы не нашли время, чтобы протестировать приведенный выше код?
2. Я сделал сопряжение, но по какой-то причине оно не работает, если оно сочетается с другими макросами в том же подразделении. Но если он находится в отдельном подразделении, как ваш код, он работает как шарм. спасибо, приятель.
3. @nikolaikolev: Вы можете вызвать вышеупомянутый
Sub
в конце вашего «другого макроса»…4. я сделал это, и это сработало просто отлично. большое вам спасибо