复制列中的单元格范围直至空白单元格,然后粘贴到新工作簿中

1 excel vba

我正在处理一列数据,其中的范围(例如,将有多少行数据)最终将根据用户创建的每个新工作表而变化。

例如,在一张纸上,B中的范围可以是B3:B7,在另一张纸上,它可以是B3:B22。

我想要一个从 B3:Bn 范围复制数据的宏,其中 n 是下一行中存在空白单元格之前的最后一行。例如,复制 B4:B7,B8 中有一个空白单元格。我想将此范围粘贴到另一个工作簿的 C 列中。

我只是 VBA 的初学者,对代码还没有掌握太多。我已经尝试了几次循环迭代,但它并没有真正起作用。

这是我迄今为止的弱代码。任何帮助表示赞赏。

Sub main()
    Dim r As Range

    Set r = Range("B3")
    Do While r.Value <> ""
        Range("C").Value = r.Value
        Set r = r.Offset(1)
    Loop
End Sub
Run Code Online (Sandbox Code Playgroud)

Mik*_*kku 5

这是一个简单的代码,可以帮助您入门。相应地更改名称

Sub main()

Dim wba As Workbook
Dim wbb As Workbook

Set wba = Workbooks("Workbook A")
Set wbb = Workbooks("Workbook B")

with wba.Worksheets("Worksheet in A")
      .Range("B3", .Range("B3").End(xlDown)).Copy
End With

wbb.Worksheets("Worksheet in B").Range("C3").PasteSpecial xlPasteValues

End Sub
Run Code Online (Sandbox Code Playgroud)

A 是包含数据的工作簿,B 是您必须复制的工作簿。

更改两个工作簿上的工作表名称,并将Range("B3", Range("B1").End(xlDown))选择范围直至空白单元格。