我正在处理一列数据,其中的范围(例如,将有多少行数据)最终将根据用户创建的每个新工作表而变化。
例如,在一张纸上,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)
这是一个简单的代码,可以帮助您入门。相应地更改名称
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))选择范围直至空白单元格。