查找行宏澄清

时间:2014-05-24 19:26:19

标签: excel vba excel-vba

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

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

Dim TOS As Long
TOS = Range("A1").Row

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

一个。)

Dim TOS As Long
TOS = Range("A65536").End(xlUp).offset(1,0).Row

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

下进行。)

Dim TOS As Long
TOS = Range("A65536").End(xlUp).Row + 1

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

我需要回答的第二件事是,如果我把一个列和一行放在一起,一个使用公式(行)中的值,另一个我假设为一个字符串,我将如何去做?

例)

Range("B" & TOS:"B" & TOE).Select

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

1 个答案:

答案 0 :(得分:4)

帮助系统确认Row

  

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

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

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

Dim rng As Range
Set rng = Range("A1").EntireRow

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

您的代码应为:

Range("B" & TOS & ":B" & TOE).Select

用冒号":"在引号内(和另一个&符号)。 (还有其他方法可以写这个。)

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

Range("A1").Delete xlShiftUp