Вопрос:
У меня есть данные в столбце A в моей книге, они сгруппированы с пробелами между ними. Мне нужен VBA, чтобы найти первую пустую ячейку и добавить текст “Прогресс”, затем найти следующую пустую ячейку и добавить текст “План”,
Коды ниже только добавляют один и тот же текст к каждому пробелу, как я могу сказать ему, как только он будет пустым, если он будет заполнен, перейдите к следующему пробелу и добавьте текст XXX?
Sub getnext() lastRow = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To lastRow If IsEmpty(Cells(i, 1)) Then Cells(i, 1).Value = «Progress» Cells(i, 1).Value = «Plan» End If Next i End Sub Sub FirstEmpty() lRow = Range(«A» & Rows.Count).End(xlUp).Row Set MR = Range(«A1:A» & lRow) For Each cell In MR If cell.Text = «» Then cell.Value = «Progress» Next End Sub Лучший ответ:
Попытайтесь включить увеличивающуюся переменную, чтобы отслеживать, сколько подстановок вы сделали. Ниже приведен пример:
Sub FindBlankAndFill() Dim cnter As Integer lastRow = Cells(Rows.Count, 1).End(xlUp).Row cnter = 0 For i = 1 To lastRow If IsEmpty(Cells(i, 1)) Then Select Case cnter Case 0: Cells(i, 1).Value = «Progress» Case 1: Cells(i, 1).Value = «Plan» Case Else: Cells(i, 1).Value = «Not Yet Defined» End Select cnter = cnter + 1 End If Next i End Sub Ответ №1
С такими данными, как:
Этот маленький макрос поместит что-то в первую пустую ячейку и что-то другое в следующей пустой ячейке:
Sub marine() Dim r As Range Set r = Intersect(ActiveSheet.UsedRange, Range(«A:A»)).Cells.SpecialCells(xlCellTypeBlanks) r(1) = «Initial» r(2) = «next» End Sub