使用Excel VBA将不同长度的粘贴范围从一个工作表复制到另一个工作表

时间:2016-06-29 15:06:32

标签: excel vba loops range copy-paste

我的数据设置为输出如下:

  • 4列数据
  • 然后数据由4个空白列分隔,然后还有另外4列数据等。
  • 行的长度不同
  • 数据从Bloomberg中提取,因此每次刷新数据时行都可能会更改。
  • 数据从第3行和第2列开始。

enter image description here

我正在尝试创建一个

的循环
  • 选择整个4列,将其复制并粘贴到另一个工作表中
  • 然后在4个空白列中移动,复制数据并将其粘贴到先前粘贴的数据正下方的另一个工作表中
  • 直到到达有数据的最后一列。
  • 我试图在每个之间创建一个空白行,并且当我将它们粘贴到新工作表中时,我也试图让4列彼此相邻

enter image description here

以下是我遇到问题的代码......

Sub CopyPasteDex()

  Dim wksDest             As Worksheet
  Dim wksSource           As Worksheet
  Dim Rngsource           As Range
  Dim NextRow             As Long
  Dim LastRow             As Long
  Dim LastCol             As Long
  Dim c                   As Long

Application.ScreenUpdating = False

Set wksSource = Worksheets("Sheet1")
Set wksDest = Worksheets("Sheet2")

With wksDest
    NextRow = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
End With

With wksSource
    LastCol = .Cells(3, .Columns.Count).End(xlToLeft).Column
    For c = 2 To LastCol Step 7
        LastRow = .Cells(.Rows.Count, c).End(xlUp).Row
        Set Rngsource = .Range(.Cells(3, c), .Cells(LastRow, c + 3))
        Rngsource.Copy
        wksDest.Range("A:A").PasteSpecial.xlPasteValues
        NextRow = NextRow + Rngsource.Rows.Count
    Next c
End With

Application.ScreenUpdating = True

End Sub

1 个答案:

答案 0 :(得分:0)

A note from the ref String Attribute section

这似乎对我有用。

{{1}}