【问题标题】:How to copy the last non-blank cell in a column that contains blank cells with formulas in them如何复制包含带有公式的空白单元格的列中的最后一个非空白单元格
【发布时间】:2019-08-02 14:26:01
【问题描述】:

我希望复制列中最后一个带有值的单元格(这是一个返回值的公式)。唯一的问题是,在特定列中的最后一个值之后,还有更多的公式返回空白值。

当我使用这段代码时:

LastRow = Cells(Rows.Count, "C").End(xlUp).Row
Cells(LastRow, "C").Copy

它会复制最后一个包含公式的单元格,因此它会复制一个空白单元格。我希望它复制最后一个显示值的单元格。

感谢您的帮助!

【问题讨论】:

  • 为了澄清,单元格中有一个公式,但公式返回一个空白。然后,您希望继续向上行(从第 20 行到第 19 到 18 行等),直到公式返回一个非空白值。那你想把那个公式复制下来吗?
  • 没错!我想复制返回值的列的最后一个单元格
  • 想一想——公式在所有行中都相同吗?或者说得非常清楚,您是否要将 value 而不是 formula 复制 30 行?
  • 一列的所有行的公式相同,但每一列的公式不同。我想复制公式而不是值。这行得通吗? : SpecialCells(Type:=xlCellTypeConstants, Value:=xlTextValues)

标签: excel vba


【解决方案1】:

我认为这就是您要寻找的内容(还包含来自您的 previous 问题的代码):

For col = 1 To lastCol
    If .Cells(1, col).Value = "F" Then
        'lastRow = .Cells(.Rows.Count, col).End(xlUp).Row
        lastRow = .Columns(col).Find("*", SearchDirection:=xlPrevious, SearchOrder:=xlByRows, LookIn:=xlValues).Row
        .Range(.Cells(lastRow, col), .Cells(lastRow + copyRowAmt, col)).Formula = _
            .Cells(lastRow, col).Formula
    End If
Next col

【讨论】:

  • 太棒了!它完美地工作!感谢您的帮助!
【解决方案2】:

@Mikku - 谢谢你的回答!现在唯一的事情是我正在循环浏览工作表中的列。我的代码真的是:

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) 不是一个有效的结构。你可能想拆分Cells(lastRow, c)...
【解决方案3】:

在这种情况下,您可以使用 Range Class 的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

【讨论】:

    猜你喜欢
    • 2019-11-21
    • 1970-01-01
    • 2019-10-01
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多