2017-11-30 9 views
1

異なるデータの多くをコピー&ペーストするVBAを作成しようとしているので、重要な部分だけをコピーしたいので、各シートに重要ではないデータがたくさんあります。私は次のようになりますしている VBA:選択範囲のVBAから行を削除

Sub DynamicRange() 
'Best used when your data does not have any entirely blank rows or columns 

Dim sht As Worksheet 
Dim StartCell As Range 

Set sht = Worksheets("Kvalitetskriterier 2015") 
Set StartCell = Range("A8") 

'Select Range 
    StartCell.CurrentRegion.Select 

End Sub 

私は必要なものは、私はその部分を必要といけないよう、seleced範囲から、最初の行と最後の4行を削除する方法です。私のVBAからそれを行う方法はありますか?

答えて

6

Selectの範囲はコピーしたい場合はCopyです。

Rangeの最初の行を取り除きたい場合は、Range.Ofset(1, 0)を使用して、最初の行(ヘッダー)を削除します。

範囲の最後に行を取り除きたい場合は、Range.Resize(- number of rows you want to remove)を使用できます。

コード

Sub DynamicRange() 
'Best used when your data does not have any entirely blank rows or columns 

Dim sht As Worksheet 
Dim StartCell As Range 

Set sht = Worksheets("Kvalitetskriterier 2015") 
Set StartCell = sht.Range("A8") 

'Select current region 
Set StartCell = StartCell.CurrentRegion 

' set offeset 1 row (remove header), and use Resize to remove the last row 
Set StartCell = StartCell.Offset(1, 0).Resize(StartCell.rows.Count - 2) 

StartCell.Copy ' <-- No need to Select it if you want to copy 

End Sub 
+0

++私は自分のコードを破棄しなければならなかった; D –

+0

@SiddharthRoutねえシド、あなたが再び戻ってきましたか?あなたはどこにいた ? –

+0

休憩:D –