Excel 如何复制包含包含公式的空白单元格的列中的最后一个非空白单元格
我希望复制列中具有值的最后一个单元格(这是一个返回值的公式)。唯一的问题是,在特定列中的最后一个值之后,有更多的公式返回空白值 当我使用此代码时:Excel 如何复制包含包含公式的空白单元格的列中的最后一个非空白单元格,excel,vba,Excel,Vba,我希望复制列中具有值的最后一个单元格(这是一个返回值的公式)。唯一的问题是,在特定列中的最后一个值之后,有更多的公式返回空白值 当我使用此代码时: LastRow = Cells(Rows.Count, "C").End(xlUp).Row Cells(LastRow, "C").Copy 它复制包含公式的最后一个单元格,以便复制空白单元格。。我希望它复制显示值的最后一个单元格 谢谢你的帮助 在这种情况下,您可以使用Range类的SpecialCells功能。有点棘手,但会有效地完成工作 试
LastRow = Cells(Rows.Count, "C").End(xlUp).Row
Cells(LastRow, "C").Copy
它复制包含公式的最后一个单元格,以便复制空白单元格。。我希望它复制显示值的最后一个单元格
谢谢你的帮助 在这种情况下,您可以使用Range类的
SpecialCells
功能。有点棘手,但会有效地完成工作
试试看:
LastRow = Cells(Rows.Count, "C").End(xlUp).row
LastRow = Split(Range("C1:C" & LastRow).SpecialCells(xlCellTypeConstants).Address, "$")(4)
Cells(LastRow, "C").Copy
For c = 1 To 20
LastRow = Cells(Rows.Count, c).End(xlUp).row
LastRow = Split(Range(Cells(1, c), Cells(LastRow, c)).SpecialCells(xlCellTypeConstants).Address, "$")(4)
Cells(LastRow, c).Copy
Next c
更新:
LastRow = Cells(Rows.Count, "C").End(xlUp).row
LastRow = Split(Range("C1:C" & LastRow).SpecialCells(xlCellTypeConstants).Address, "$")(4)
Cells(LastRow, "C").Copy
For c = 1 To 20
LastRow = Cells(Rows.Count, c).End(xlUp).row
LastRow = Split(Range(Cells(1, c), Cells(LastRow, c)).SpecialCells(xlCellTypeConstants).Address, "$")(4)
Cells(LastRow, c).Copy
Next c
@米库-谢谢你的回答!现在唯一的一件事是我在工作表中的列之间循环。我的代码实际上是:
For c = 1 To 20
LastRow = Cells(Rows.Count, c).End(xlUp).Row
LastRow = Split(Range(c & LastRow).SpecialCells(xlCellTypeConstants).Address, "$")(4)
Cells(LastRow, c).Copy
Next c
那么,我如何在循环中插入您的代码呢
谢谢 我想这就是你想要的(也包括你问题中的代码):
最后一行是真“值”,还是一个生成值而不是空的公式?最后一行是一个返回空的公式,最后一个“值”也是一个生成值的公式。@TristB,使用更新的答案是,但您需要另一种方法。仅供参考
Range(c&lastRow)
不是有效的构造。您可能希望拆分单元格(lastRow,c).
为了澄清,单元格中有一个公式,但公式返回一个空白。然后您希望继续增加行数(从第20行到第19行到第18行等等),直到公式返回非空值。那你想把公式抄下来吗?没错!我想复制返回一个值的列的最后一个单元格思考一下--公式在所有行中都是一样的吗?或者非常清楚地说,是否要将值而不是公式复制到30行中?公式在一列的所有行中都相同,但在每列中都不同。我想复制公式,而不是值。这行吗特殊单元格(类型:=xlCellTypeConstants,值:=xlTextValues)太棒了!它工作得很好!谢谢你的帮助!