我想选择一个Excel工作表的格式范围。 要定义最后和第一行我使用下列功能:
lastColumn = ActiveSheet.UsedRange.Column - 1 + ActiveSheet.UsedRange.Columns.Count
lastRow = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
在下一步我要选择这个领域:公式应该是这样的:
Range(cells(1, 1), cells(lastRow, lastColumn).Select
但是,这是行不通的。 也许有人有一个想法有什么不对的地方。 非常感谢!
我录一个宏用“相对引用”,这是我得到了什么:
Range("F10").Select
ActiveCell.Offset(0, 3).Range("A1:D11").Select
下面有什么,我想:如果选择范围是在引号,VBA真正想要的字符串,并解释细胞出这么尝试了以下内容:
Dim MyRange as String
MyRange = "A1:D11"
Range(MyRange).Select
和它的工作:)即..用你的变量只是创建一个字符串,请务必标注它作为一个字符串变量和Excel将读取正确的关闭它;)
继测试,发现工作:
Sub Macro04()
Dim Copyrange As String
Startrow = 1
Lastrow = 11
Let Copyrange = "A" & Startrow & ":" & "D" & Lastrow
Range(Copyrange).Select
End Sub
我遇到了类似的东西 - 我想创建基于一些变量的范围。 自从使用我认为细胞的价值观传递给范围Worksheet.Cells没有直接工作。
这没有工作,但:
Range(Cells(1, 1).Address(), Cells(lastRow, lastColumn).Address()).Select
这花了转化细胞的数值位置,以什么范围的预期,这是A1幅面的照顾。
如果你只是想选择的使用范围,使用
ActiveSheet.UsedRange.Select
如果你想从A1选择要使用的范围的结束,您可以使用SpecialCells方法是这样
With ActiveSheet
.Range(.Cells(1, 1), .Cells.SpecialCells(xlCellTypeLastCell)).Select
End With
有时,Excel的会很困惑,什么是最后一个单元格。 这是从来没有一个较小的范围比实际使用的范围内,但它可以是更大的,如果一些细胞被删除。 为了避免这种情况,您可以使用查找和星号通配符来找到真正的最后一个单元格。
Dim rLastCell As Range
With Sheet1
Set rLastCell = .Cells.Find("*", .Cells(1, 1), xlValues, xlPart, , xlPrevious)
.Range(.Cells(1, 1), rLastCell).Select
End With
最后,确保如果你真的需要你只选择。 你们中的大多数需要在Excel VBA做什么,你可以直接做的范围,而不是第一选择它。 代替
.Range(.Cells(1, 1), rLastCell).Select
Selection.Font.Bold = True
您可以
.Range(.Cells(1,1), rLastCells).Font.Bold = True
你缺少一个右括号,你的IE不关闭Range()
试试这个Range(cells(1, 1), cells(lastRow, lastColumn)).Select
但是,你真的应该看看从迪克Kusleika其他答案可能更好地为你可能的选择。 具体来说, ActiveSheet.UsedRange.Select
具有相同的最终结果你的代码。
你是把它们变成一个地址,但细胞(#,#)使用整数投入没有地址输入因此就使用lastRow = ActiveSheet.UsedRange.Rows.count
和lastColumn = ActiveSheet.UsedRange.Columns.Count
我试着使用:
Range(cells(1, 1), cells(lastRow, lastColumn)).Select
其中lastRow
和lastColumn
是整数,但收到运行时错误1004我使用的是旧VB(6.5)。
什么做的工作是使用以下命令:
Range(Chr(64 + firstColumn) & firstRow & ":" & Chr(64 + lastColumn) & firstColumn).Select.