2017-05-24 152 views
1

我想在表格中選擇整個數據(整個範圍)。我不知道爲什麼錯誤發生在這裏:
Range("A1:(Cells(ostatnia_dana, ostatnia_dana1)").SelectVBA總範圍

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 
+0

'Range(「A1」,Cells(ostatnia_dana,ostatnia_dana1))。Select? –

+0

Activesheet.usedrange.select不工作嗎?或者我錯了嗎? – Storax

+0

或者你的意思是Activesheet.Range(「A1」)。CurrentRegion.Select – Storax

回答

3

這是一個非常骯髒的解決方案。 更改我的示例中的最後一行。 :)

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 

什麼是第二個更好的解決方案:

在GE neral,如果沒有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 
+1

你錯過了'.'之前'Rows.Count'和'Columns.Count'我認爲 –

+1

@Peh - yup,謝謝。 – Vityata