2016-03-02 3 views
4

Надеюсь, кто-то может помочь. Мне нужно заполнить любые пустые/пустые ячейки в пределах диапазона ячеек определенной строкой. Я также не знаю, что последняя строка будет в этом диапазоне, поэтому я сначала ее ищу, я знаю, что строка кода работает так, как я использовал ее для другой функции внутри скрипта. Ниже приведен код, я использую: -Заменить пустую/пустую ячейку со строковым значением

LastRow = Cells(Rows.Count, 2).End(xlUp).Row 

    For Each r In Range("AS22:AU" & LastRow) 
     If r.Value2 = vbNullString Then 
      r.Value2 = "Greens" 
     End If 
    Next 

Я не похож, чтобы получить какую-либо ошибку компиляции, когда я запускаю код, он просто не работает, я до сих пор имеет те же пустые/пустые ячейки.

Может ли кто-нибудь пролить свет на то, что я делаю неправильно?

ответ

1

Вы можете использовать .Replace Method с диапазоном. Это было бы намного быстрее.

Range("AS22:AU" & LastRow).Replace "", "Greens", xlWhole 
+0

@Iturner Я попробовал это, но получил те же результаты - ничего. ячейки остались бланками. это то, что у меня первоначально было LastRow = Cells (Rows.Count, 2) .End (xlUp) .Row With Range («AS22: AU» & LastRow) . Замените что: = "", Замена: = "On Track" End With – user3088476

+0

Существуют ли в ячейках формулы, которые заставляют ячейки отображаться как пробельные? Вы отлаживали, чтобы переменная 'LastRow' возвращала ожидаемое целое число? –

+0

@Iturner Я просто запустил LastRow и проверю, что он возвращает значение – user3088476

0

Использовать IsEmpty() для проверки пробелов.

Также следите за ячейками с нулевой длиной строки или пробелом. Они кажутся пустыми, но на самом деле их нет.

2

Как насчет:

Sub dural() 
    Dim r As Range, LastRow As Long 

    LastRow = Cells(Rows.Count, 2).End(xlUp).Row 
    For Each r In Range("AS22:AU" & LastRow) 
     If r.Text = "" Then r.Value = "Greens" 
    Next r 
End Sub 

Это изменит:

  • действительно пустые клетки
  • ячеек, содержащих формулу возвращающихся Null
  • клетку
  • содержащей Null символа в качестве постоянного
+0

это тоже не работает, ячейки остаются пустыми - любые подсказки относительно того, что это такое – user3088476

+0

@ user3088476 Я подозреваю, что ** 2 ** в уравнении для 'LastRow' ............ являются вы уверены, что хотите, чтобы колонка ** B ** контролировала конец цикла? –

+0

Столбец B - это столбец, который я знаю. Я буду содержать значение в последней строке, столбец AS-AU, который я копирую, может не содержать значения в последней строке, поэтому я ищу в столбце B. – user3088476

Смежные вопросы