我正在寻找在列中复制带有值的最后一个单元格(这是一个返回值的公式)。唯一的问题是,在特定列中的最后一个值之后,有更多的公式返回空白值。
当我使用此代码时:
LastRow = Cells(Rows.Count, "C").End(xlUp).Row
Cells(LastRow, "C").Copy
它复制了包含公式的最后一个单元格,因此它复制了一个空白单元格。我希望它复制显示一个值的最后一个单元格。
感谢您的帮助!
答案 0 :(得分: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
答案 1 :(得分:0)
在这种情况下,您可以使用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
答案 2 :(得分:0)
@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
那么我该如何在循环中插入您的代码?
谢谢!