下午好,

我正在使用这些数据透视表生成的数据,并且我想用它们上面的值填充第一列(从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的MsgBox。因此,我认为它必须出于某种原因仅在第一个单元格中运行,因此我编写了以下内容作为测试:

Dim cellule5 As Range

For Each cellule5 In Range("N1").CurrentRegion.Columns(1)
     cellule5.Value = 5
Next


并且用5代替了所有内容。如果有人理解其中的任何内容,他们的帮助将不胜感激。提前致谢!

编辑:起初我以为是因为这些数据在表中,但我未列出它,问题仍然存在

最佳答案

您正在浏览一列,一次浏览一列。您需要使用:

For Each cellule5 In Range("N1").CurrentRegion.Columns(1).Cells

关于excel - 对于每个在Excel VBA中不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24523422/

10-12 16:36