我有一列在每个行字段中都有一个公式。该公式从另一个 Excel 电子表格传播数据。但是,如果行字段中没有任何内容,则该行保持空白。
我找到了许多示例来获取列中的最后一行。他们失败了,因为他们将公式检测为其中包含某些内容的行。
如何获取忽略公式且仅尝试检测值的列中的最后一行?
我尝试了两种方法来搜索列中的最后一行:
Function lastRowA(rngInput As Range) As Variant
Dim WorkRange As Range
Dim i As Integer, CellCount As Integer
Application.Volatile
Set WorkRange = rngInput.Rows(1).EntireRow
Set WorkRange = Intersect(WorkRange.Parent.UsedRange, WorkRange)
CellCount = WorkRange.Count
For i = CellCount To 1 Step -1
If Not IsEmpty(WorkRange(i)) Then
lastRowA = WorkRange(i).Value
Exit Function
End If
Next i
End Function
和
function lastRow(column as string, optional plusOne as boolean)
If (plusOne = False) then
plusOne=False
End If
if (plusOne = False) Then
lastRow = Replace(Range(column & "65536").End(xlUp).Address, "$", "")
Else
lastRow = Range(column & "65536").End(xlUp).Address
lastRow = Cells(lastRow)
' Replace(, "$", "")
End If
End Function
最佳答案
如果您想查找包含非空值的最后一行(由公式生成或通过输入常量),请尝试此操作
Sub FindLastValue()
Dim jLastRow As Long
jLastRow = ActiveSheet.Cells.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End Sub
关于excel - 确定列中最后一个非值(可能有公式)行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8548889/