查找行宏澄清

CSS*_*rmy 5 excel vba excel-vba

我已经看过几个关于使用宏查找电子表格中最后一行/单元格的线程,我有几个问题.

首先,以下代码是仅返回行值还是整个单元格值("1"或"A1")?

Dim TOS As Long
TOS = Range("A1").Row
Run Code Online (Sandbox Code Playgroud)

或者,除了显而易见的事实(它们从底部开始并找到最后一个单元加1),这些其他代码之间是否存在差异(如何显示或拉出数据)?我只需要最简单的(或者最好的,如果你有一个好的参数)一个只返回行(不是单元格).

一个.)

Dim TOS As Long
TOS = Range("A65536").End(xlUp).offset(1,0).Row
Run Code Online (Sandbox Code Playgroud)

B.)

Dim TOS As Long
With Application.Workbooks("Test").Sheets(1)
   If WorksheetFunction.CountA(Cells) > 0 Then
       TOS = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End If
Run Code Online (Sandbox Code Playgroud)

C.)

Dim TOS As Long
TOS = Range("A65536").End(xlUp).Row + 1
Run Code Online (Sandbox Code Playgroud)

只拉动该行的重点是我有两个不同的表,我已经在同一个工作表上取消合并.我需要删除包含数据的列之间的空白列.它不会让我只使用"删除空白单元格"代码删除空白单元格.我假设是因为在顶部表中,列可能有空白单元格,但在底部表格中,同一列可能包含数据.如果你能解释一下如何"删除空白单元格"代码的工作,那很可能会更容易,但,我也只需要删除空白单元格列,不列,因为我需要保持分离表.

我需要回答的第二个问题是,如果我把一列和行一起,一个使用从公式(行),另一个我假设为一个字符串值,我怎么会去这样做?

前).

Range("B" & TOS:"B" & TOE).Select
Run Code Online (Sandbox Code Playgroud)

TOS和TOE是我的行值,我需要为B列中的那些行选择所有单元格.

And*_*y G 4

帮助系统确认Row

返回范围中第一个区域的第一行的编号。

所以它只是一个(长)数字。

如果您想获取对行本身的引用,那么:

Dim rng As Range
Set rng = Range("A1").EntireRow
Run Code Online (Sandbox Code Playgroud)

A) 和 C) 相同,但它们查找 A 列的最后一行,而 B) 查找工作表的最后使用的行(不仅仅是 A 列)。

你的代码应该是:

Range("B" & TOS & ":B" & TOE).Select
Run Code Online (Sandbox Code Playgroud)

引号内有冒号“:”(和另一个&符号)。(不过还有其他方法可以写这个。)

要删除单元格而不是整行:

Range("A1").Delete xlShiftUp
Run Code Online (Sandbox Code Playgroud)

  • @RonRosenfeld true if `LookIn:=xlFormulas` - 但如果 `LookIn:=xlValues` 则不然(或者如果未指定此参数但最后运行为 `xlValues` (2认同)