image

查找下一行意味着找到最后使用的行+1。对于使用VBA的excel中的任何自动化,查找最后使用的行或列都是基本和重要的任务之一。为了自动编译工作表,工作簿和安排数据,您需要在工作表上查找数据限制。

本文将解释以最简单的方法在excel中查找最后一行和最后一列的每种方法。

1.使用Range.End查找列中的最后一个非空白行。首先来看代码。我会解释这封信。
Sub getLastUsedRow()

Dim last_row As Integer

last_row = Cells(Rows.Count, 1).End(xlUp).Row ‘This line gets the last row

Debug.Print last_row

End Sub

上面的子项查找列1中的最后一行。

image

如何运作?

就像转到工作表的最后一行,然后按CTRL + UP快捷键一样。

Cells(Rows.Count,1):这部分选择A列中的单元格。Rows.Count给出1048576,通常是excel工作表的最后一行。

Cells(1048576,1).End(xlUp):End是一种范围类的方法,用于在工作表中导航至末尾。 xlUp是指示方向的变量。此命令一起选择带有数据的最后一行。

Cells(Rows.Count,1).End(xlUp).Row:.row返回所选单元格的行号。因此,我们在列A中获得了具有数据的最后一个单元格的行号。在我们的示例中,它是8。看看找到带有数据的最后一行是多么容易。此方法将选择数据中的最后一行,而不管其之前的空白单元格如何。您可以在图像中看到只有单元格A8有数据。除A4以外,所有前面的单元格均为空白。

选择列中包含数据的最后一个单元格如果要选择A列中的最后一个单元格,则只需从末尾删除“ .row”并写入.select。

“ .Select”命令选择活动单元格。

Sub getLastUsedRow()

Cells(Rows.Count, 1).End(xlUp).Select ‘This line selects the last cell in a column

End Sub
获取最后一个单元格的地址列如果要获取A列中最后一个单元格的地址,则只需从末尾删除“ .row”并写入.address。

Range.Address函数返回活动单元的地址。

Sub getLastUsedRow()

add=Cells(Rows.Count, 1).End(xlUp).address ‘This line selects the last cell in a column

Debug.print add

End Sub
查找行中最后一个非空白列它与查找列中最后一个非空白单元格几乎相同。

在这里,我们获得第4行中有数据的最后一个单元格的列号。

您可以在图像中看到它正在返回第4行中最后一个非空白单元格的列号,即4。

Sub getLastUsedCol()

Dim last_col As Integer

last_col = Cells(4,Columns.Count).End(xlToLeft).Column ‘This line gets the last column

Debug.Print last_col

End Sub

image

如何运作?

好吧,机制与在列中查找包含数据的最后一个单元格相同。我们只使用了与列相关的关键字。

使用VBA在Excel中选择数据集现在,我们知道如何使用VBA获取Excel的最后一行和最后一列。

使用它,我们可以轻松地选择一个表或数据集。选择数据集或表后,我们可以对其执行一些操作,例如复制粘贴,格式化,删除等。

这里我们有一个数据集。该数据可以向下扩展。只有起始单元格是固定的,即B4。最后一行和最后一行是固定的。我们需要使用vba动态选择整个表。

VBA代码选择带有空白单元格的表

image

运行此命令时,整个表将在不到一秒钟的时间内被选中。您可以添加新的行和列。它将始终选择整个数据。

Sub select_table()

Dim last_row, last_col As Long

'Get last row

last_row = Cells(Rows.Count, 2).End(xlUp).Row

'Get last column

last_col = Cells(4, Columns.Count).End(xlToLeft).Column

'Select entire table

Range(Cells(4, 2), Cells(last_row, last_col)).Select

End Sub

image

此方法的好处:

。这简单。我们实际上只写了一行就可以得到最后一行数据。这很容易。

。快速。更少的代码行,更少的时间。

。容易理解。

。如果您的数据表具有固定的起点,则效果很好。

Range.End方法的缺点:

。必须知道起点。

。您只能获取已知行或列中的最后一个非空白单元格。

当您的起点不固定时,它将毫无用处。这不太可能发生。

2.使用Find()函数查找最后一行首先来看代码。

如您在图像中所见,此代码准确地返回了最后一行。

Sub last_row()

lastRow = ActiveSheet.Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row



Debug.Print lastRow

End Sub

image

如何运作?在这里,我们使用find函数使用通配符“ *”查找包含任何内容的任何单元格。星号用于查找任何内容,文本或数字。

我们按行设置搜索顺序(searchorder:= xlByRows)。我们还将excel vba的搜索方向告诉xlPrevious(searchdirection:= xlPrevious)。

它具有查找功能,可以从工作表的末尾逐行搜索。

一旦找到包含任何内容的单元格,它就会停止。我们使用Range.Row方法从活动单元格中获取最后一行。

使用Find函数获取最后一个包含数据的单元格的好处:

。您不需要知道起点。它只是让您排在最后。

。它可以是通用的,可用于在没有任何更改的情况下查找包含任何工作表中的数据的最后一个单元格。

。可用于查找工作表上特定文本或数字的任何最后一个实例。

Find()函数的缺点:

。这很丑。争论太多。

。太慢了

。无法到达最后一个非空白列。从技术上讲,您可以。但这太慢了。

3.使用SpecialCells函数获取最后一行带xlCellTypeLastCell参数的SpecialCells函数返回最后使用的单元格。让我们先看看代码

如果运行上面的代码,您将获得最后使用的单元格的行号。

Sub spl_last_row_()

lastRow = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row

Debug.Print lastRow

End Sub

image

工作原理?

这与Excel中的快捷键CTRL + End等效。选择最后使用的单元格。如果您在按Ctrl + End的同时录制宏,则将获得此代码。

我们只是用它来获取上次使用的单元格的行号。

Sub Macro1()

'

' Macro1 Macro

'

'

ActiveCell.SpecialCells(xlLastCell).Select

End Sub

注意:正如我上面所说,此方法将返回最后使用的单元格而不是最后一个包含数据的单元格。如果删除最后一个单元格中的数据,则上面的vba代码仍将返回相同的单元格引用,因为它是“最后使用的单元格”。您需要先保存文档,才能使用此方法获取包含数据的最后一个单元格。

希望本文有关如何在VBA Microsoft Excel 2010中查找下一行的文章具有解释性。在此处找到有关IF条件公式的更多文章。

如果您喜欢我们的博客,请在Facebook上与您的朋友分享。您也可以在Twitter和Facebook上关注我们。我们希望收到您的来信,请让我们知道我们如何改进,补充或创新我们的工作,并为您做得更好。写信给我们[email protected]

相关文章:

链接:/ applications-word-outlook-in-vba-getting-started-excel-vba-userforms [Excel VBA UserForms入门]:我将解释如何在excel中创建表单,如何使用VBA工具箱,如何处理用户输入,最后如何存储用户输入。我们将使用一个示例和逐步指南来逐步介绍这些主题。

Excel中的VBA变量:VBA代表Visual Basic for Applications。

它是Microsoft的一种编程语言。它与Microsoft Office应用程序(例如MSExcel,MS-Word和MS-Access)一起使用,而VBA变量是特定的关键字。

链接:/ general-topics-in-vba-excel-vba-variable-scope [Excel VBA变量范围]:在所有编程语言中,我们都有变量访问说明符,这些说明符定义了从何处可以访问已定义的变量。 Excel VBA也不例外。 VBA也具有范围说明符。

`link:/在vba中的单元格范围行和列-byref和byval参数vba面试问题[ByRef和ByVal参数]之间的区别是什么?参数作为ByRef参数传递给其他子函数或函数,则发送实际变量的引用。对变量副本所做的任何更改都将反映在原始参数中。

热门文章:

链接:/ tips-if-condition-in-excel [如何在Excel中使用IF函数]:Excel中的IF语句检查条件,如果条件为TRUE,则返回一个特定值,如果为FALSE,则返回另一个特定值。

`link:/ formulas-and-functions-introduction-vlookup-function [如何在Excel中使用VLOOKUP函数]’:这是excel中最常用和最受欢迎的函数之一,用于从不同范围查找值和床单。

如何在Excel中使用SUMIF函数:这是另一个仪表板必需的函数。这可以帮助您汇总特定条件下的值。

如何在Excel中使用COUNTIF函数:使用此惊人的函数对带有条件的值进行计数。您无需过滤数据即可计算特定值。 Countif功能对于准备仪表板至关重要。