我正在尝试处理从quickbooks转储的excel数据。为了做我想做的事情,我需要在A列中使用第一个非空白行,这取决于快速书中报告的时间段。
我正在使用
Sub Test()
Selection.End(xlDown).Select
找到A列中的第一个非空白行。
比如说我有两个文件,一个是A列中第一个非空白单元格是A157。 Selection.End(xlDown).Select选择A157。然后我需要选择C1:C157。
另一个电子表格在A122的A列中有第一个非空白单元格。 Selection.End(xlDown).Select选择A122。然后我需要选择C1:C122。使用xlDown找到的A列中的行是一个变量,然后我需要使用该变量在C列中创建一个选择。
非常感谢任何帮助。谢谢!
答案 0 :(得分:4)
要获取工作表中的最后一行/列,请尝试:
Dim ws As Worksheet
set ws = ActiveSheet
With ws
lastRow = ws.Cells.SpecialCells(xlCellTypeLastCell).Row
lastCol = ws.Cells.SpecialCells(xlCellTypeLastCell).Column
End With
要获取范围中的最后一行/列,请尝试:
Dim rg as Range
With ws
Set rg = .Range(.Cells(1, 3), .Cells(999, 3))
With rg
lastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
lastCol = .Cells.SpecialCells(xlCellTypeLastCell).Column
End With
End With
要设置上一行/列的新范围,请尝试:
With ws
Set rg = .Range(.Cells(firstRow, firstCol), .Cells(lastRow, lastCol))
End With
如果您有多个工作表,则可以像下面这样指定多个工作表:
Dim ws(3) As Worksheet
set ws(0) = Worksheets("SheetName1");
set ws(1) = Worksheets("SheetName2");
'etc.
答案 1 :(得分:2)
尝试,
dim rng as range
set rng = range(cells(1, "C"), cells(activecell.end(xldown).row, "C"))
rng.select