我想在工作表中选择整个数据(整个范围)。我不知道为什么这里会出现错误:Range("A1:(Cells(ostatnia_dana, ostatnia_dana1)").Select
Sub ranging()
Dim ostatnia_dana As Integer
Dim ostatnia_dana1 As Integer
ostatnia_dana = Cells(Rows.Count, 2).End(xlUp).Row
ostatnia_dana1 = Cells(2, Columns.Count).End(xlToLeft).Column
Range("A1:(Cells(ostatnia_dana, ostatnia_dana1)").Select
End Sub
最佳答案
这是一个非常肮脏的解决方案。
按照我的示例更改最后一行。 :)
Option Explicit
Sub ranging()
Dim ostatnia_dana As Integer
Dim ostatnia_dana1 As Integer
ostatnia_dana = Cells(Rows.Count, 2).End(xlUp).Row
ostatnia_dana1 = Cells(2, Columns.Count).End(xlToLeft).Column
Range(Cells(1, 1), Cells(ostatnia_dana, ostatnia_dana1)).Select
End Sub
这有点好:
Option Explicit
Sub ranging()
Dim ostatnia_dana As Long
Dim ostatnia_dana1 As Long
With ActiveSheet
ostatnia_dana = .Cells(.Rows.Count, 2).End(xlUp).Row
ostatnia_dana1 = .Cells(2, .Columns.Count).End(xlToLeft).Column
.Range(.Cells(1, 1), .Cells(ostatnia_dana, ostatnia_dana1)).Select
End With
End Sub
第二种解决方案更好:
一般来说,如果没有
With ActiveSheet
,它会很好地工作。部分,但如果您引用另一张纸,它不是事件的,它会失败。一般来说,假设您有一些其他事件的工作表,并且您想要选择一个名为 MyWorksheetName
的工作表。 .然后以下将起作用:Option Explicit
Sub MyRanges()
Dim ostatnia_dana As Long
Dim ostatnia_dana1 As Long
Dim ws As Worksheet
Set ws = Worksheets("MyWorksheetName")
With ws
ostatnia_dana = .Cells(Rows.Count, 2).End(xlUp).Row
ostatnia_dana1 = .Cells(2, Columns.Count).End(xlToLeft).Column
.Select
.Range(.Cells(1, 1), .Cells(ostatnia_dana, ostatnia_dana1)).Select
End With
End Sub
关于VBA 总范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44158605/