我正在处理一列数据,其中该范围(例如,将要有多少行数据)最终对于用户创建的每个新工作表都会有所不同。
在一张纸上,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
答案 0 :(得分:4)
看到这是一个简单的代码,可以帮助您入门。相应地更改名称
ServicePointManager.ServerCertificateValidationCallback += delegate
{
return true;
};
A是带有数据的工作簿,B必须复制到其中。
更改两个工作簿上的工作表名称,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
将选择范围,直到空白单元格。
答案 1 :(得分:1)
我只想在Mikku的代码中添加一件事。在这种情况下,用xlUp代替xlDown可能更好。因为可能有一个单元格为空白,而下一个单元格为空。当寻找最后一行时,xlUp是一个好习惯。
wba.Worksheets("Worksheet in A").Range("B3", Range("B" & Rows.Count).End(xlUp)).Copy