从selectrange VBA中删除行

Mik*_*rup 1 excel vba excel-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
Run Code Online (Sandbox Code Playgroud)

我需要的是一种方法,从seleced范围,删除第一行和最后4行,因为我不需要该部分.有没有办法从我的VBA那里做到这一点?

Sha*_*ado 6

Select如果您想要复制它,则不需要该范围,您可以直接使用Copy它.

如果你想摆脱第一行Range,你可以使用Range.Ofset(1, 0),这将删除第一行(Header).

如果您还想在Range的末尾删除行,则可以使用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
Run Code Online (Sandbox Code Playgroud)