2017-05-24 17 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))」を選択します。 –

+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では

あなたは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 - ありがとう、ありがとう。 – Vityata