Для каждого не работает в Excel vba

#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.