Я пытаюсь сделать макрос, который может:

  1. найдите слово «Да» во всех строках столбца E, скопируйте и вставьте его в соответствующую строку столбца B (та же строка)
  2. Объедините ячейку в столбце B с ячейкой в ​​столбце C

Например: макрос ищет слово «Да» в столбце E, слово «Да» находится в E5, скопируйте и вставьте «Да» в B5, объедините B5 и C5 и подтвердите объединение (excell всегда отображает всплывающее окно un окно с просьбой вручную нажать кнопку, чтобы подтвердить слияние), продолжайте следующий поиск.

-1
nikolaikolev 26 Ноя 2020 в 12:12

1 ответ

Лучший ответ

Пожалуйста, попробуйте следующий код. Он ничего не спросит при объединении ячеек, и область примет значение левой ячейки (B = Да). Если вам нужно значение в 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" & rows.count).End(xlUp).row
    
 For i = 2 To lastR
    If UCase(sh.Range("E" & i).Value) = "YES" Then
        sh.Range("B" & i).Value = sh.Range("E" & i).Value
        Application.DisplayAlerts = False 'to avoid the message asking what value to be allocate to the merged area
         sh.Range("B" & i & ":C" & i).merge
        Application.DisplayAlerts = True
    End If
 Next i
 MsgBox "Ready..."
End Sub
1
FaneDuru 26 Ноя 2020 в 10:19