#vba #excel #foreach
#vba #excel #для каждого
Вопрос:
Добрый день,
Я работаю с этими данными, сгенерированными в сводной таблице, и я хотел бы заполнить некоторые пустые ячейки в первых столбцах (начиная с N1) значением над ними:
(Я хотел опубликовать там изображение, но, видимо, для этого мне нужна репутация 10. Насколько это глупо?)
Итак, я написал это :
Sub orange_square()
Dim cellule5 As Range
For Each cellule5 In Range("N1").CurrentRegion.Columns(1)
cellule5.Value = cellule5.Offset(-1,0).Value
Next
End Sub
Но это ничего не делает, поэтому я написал это:
Dim cellule5 As Range
For Each cellule5 In Range("N1").CurrentRegion.Columns(1)
MsgBox (IsEmpty(cellules))
Next
Что дает мне только одно сообщение с False. Поэтому я предположил, что по какой-то причине он должен был выполняться только для первой ячейки, поэтому я написал следующее в качестве теста:
Dim cellule5 As Range
For Each cellule5 In Range("N1").CurrentRegion.Columns(1)
cellule5.Value = 5
Next
и он заменил все на 5. Если кто-то понимает что-либо из этого, их помощь будет по достоинству оценена. Заранее спасибо!
РЕДАКТИРОВАТЬ: сначала я подумал, что это потому, что эти данные были в таблице, но я не внес их в список, и проблема остается
Ответ №1:
Вы просматриваете столбцы, по 1 столбцу за раз. Вам нужно использовать:
For Each cellule5 In Range("N1").CurrentRegion.Columns(1).Cells
Комментарии:
1. Спасибо! Я бы хотел проголосовать за ваш ответ, но для этого мне нужна репутация 15.