查找包含数据的最后一行不起作用 - table 格式可能存在问题
Finding last row containing data not working - possible problem with table formatting
我有一个名为 MachineData 的 sheet,我有以下代码
Worksheets("MachineData").Activate
'Last row with data on column AD (30)
lrow3 = Cells(Rows.Count, 30).End(xlUp).Row
问题是 lrow3 returns 2166 应该 return 1 因为那是包含数据的该列的最后一行。
此列已添加到 table 旁边,其中包含我从数据库中提取的数据。我相信,因为数据是从数据库中提取的,所以这个 table 有一些奇怪的格式,使这个功能不起作用。
我的问题是,如何更改 table 的格式,以免发生这种情况?或者有没有办法更改我的代码,这样 table?
中就不会发生这种情况
这是我的专栏的图片,“文件名”下面的任何内容都是空的。我只得到那些绿色和白色的单元格颜色,因为这是较大 table.
的一部分
使用查找方法的最后 Non-Blank 行
- 假设工作表既没有被过滤也没有隐藏行。
- 空白表示
empty, ="", ', ...
- 空表示
empty
.
- 请注意,这两个过程之间的唯一区别是第三个
Find
方法参数的参数,称为 LookIn
,设置为 xlValues
(空白)或 xlFormulas
(空)。
Non-Blank
Sub LastNonBlankRow() ' is different than last non-empty row
Const FirstCellAddress As String = "AD2"
Dim wb As Workbook: Set wb = ThisWorkbook 'workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("MachineData")
Dim lRow As Long
With ws.Range(FirstCellAddress)
Dim lCell As Range
Set lCell = .Resize(ws.Rows.Count - .Row + 1) _
.Find("*", , xlValues, , , xlPrevious)
If lCell Is Nothing Then Exit Sub ' no data in column
lRow = lCell.Row
End With
End Sub
Non-Empty
Sub LastNonEmptyRow()
Const FirstCellAddress As String = "AD2"
Dim wb As Workbook: Set wb = ThisWorkbook 'workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("MachineData")
Dim lRow As Long
With ws.Range(FirstCellAddress)
Dim lCell As Range
Set lCell = .Resize(ws.Rows.Count - .Row + 1) _
.Find("*", , xlFormulas, , , xlPrevious)
If lCell Is Nothing Then Exit Sub ' no data in column
lRow = lCell.Row
End With
End Sub
针对您的特定上下文,即 table
末尾有空白单元格
lrow3 = Cells(Rows.Count, 30).End(xlUp).End(xlUp).Row
我有一个名为 MachineData 的 sheet,我有以下代码
Worksheets("MachineData").Activate
'Last row with data on column AD (30)
lrow3 = Cells(Rows.Count, 30).End(xlUp).Row
问题是 lrow3 returns 2166 应该 return 1 因为那是包含数据的该列的最后一行。
此列已添加到 table 旁边,其中包含我从数据库中提取的数据。我相信,因为数据是从数据库中提取的,所以这个 table 有一些奇怪的格式,使这个功能不起作用。
我的问题是,如何更改 table 的格式,以免发生这种情况?或者有没有办法更改我的代码,这样 table?
中就不会发生这种情况这是我的专栏的图片,“文件名”下面的任何内容都是空的。我只得到那些绿色和白色的单元格颜色,因为这是较大 table.
的一部分使用查找方法的最后 Non-Blank 行
- 假设工作表既没有被过滤也没有隐藏行。
- 空白表示
empty, ="", ', ...
- 空表示
empty
. - 请注意,这两个过程之间的唯一区别是第三个
Find
方法参数的参数,称为LookIn
,设置为xlValues
(空白)或xlFormulas
(空)。
Non-Blank
Sub LastNonBlankRow() ' is different than last non-empty row
Const FirstCellAddress As String = "AD2"
Dim wb As Workbook: Set wb = ThisWorkbook 'workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("MachineData")
Dim lRow As Long
With ws.Range(FirstCellAddress)
Dim lCell As Range
Set lCell = .Resize(ws.Rows.Count - .Row + 1) _
.Find("*", , xlValues, , , xlPrevious)
If lCell Is Nothing Then Exit Sub ' no data in column
lRow = lCell.Row
End With
End Sub
Non-Empty
Sub LastNonEmptyRow()
Const FirstCellAddress As String = "AD2"
Dim wb As Workbook: Set wb = ThisWorkbook 'workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("MachineData")
Dim lRow As Long
With ws.Range(FirstCellAddress)
Dim lCell As Range
Set lCell = .Resize(ws.Rows.Count - .Row + 1) _
.Find("*", , xlFormulas, , , xlPrevious)
If lCell Is Nothing Then Exit Sub ' no data in column
lRow = lCell.Row
End With
End Sub
针对您的特定上下文,即 table
末尾有空白单元格lrow3 = Cells(Rows.Count, 30).End(xlUp).End(xlUp).Row