繁体   English   中英

Excel VBA:复制多个命名范围的循环

[英]Excel VBA: Copy loop for multiple named ranges

我想复制几个命名范围。 范围具有设置的命名约定,其中包含短字符串,然后是数字(例如,Body1,Body2等)。

我的解决方法是遍历每个工作表名称,并复制范围B2:C50而不是每个命名范围,这是我想要的。

码:

Dim Bnum As Integer          'Bnum is Loop Counter
Dim Nbodies As Integer       'Nbodies is how many loops should go
Dim BodyNum As String

'BodyNum is the sheet name where the named range is (and also the named range I`d like to copy). The named ranges are workbook wide in this case


Nbodies = Range("N.Bodies")  'Called from elsewhere in the workbook

Bnum = 1                    'Initial counter set
BodyNum = "Body" & Bnum     'Name of worksheet+named range which I want to copy

Do Until Bnum = Nbodies + 1
    Workbooks(Wkbk).Activate
    Worksheets(BodyNum).Range("B2:C50").Copy

'Copies range manually definied in vba B2:C50 in this case. Want to copy named range with the same name as Bodynum, varying the digit for each loop

    Workbooks(Inputbk).Activate     'The paste portion works fine
    Selection.PasteSpecial Paste:=xlPasteValues
    Call Cursor.Cursor
    Workbooks(Wkbk).Activate
    Bnum = Bnum + 1         'Iterates loop counter
    BodyNum = "Body" & Bnum
Loop

我的理解是,您有一组名为“ Body1” ..“ BodyN”的工作表,每个工作表都有一个带有工作表本身名称的命名范围。

您提到Want to copy named range with the same name as Bodynum

然后,您需要做的就是转动这行:

Worksheets(BodyNum).Range("B2:C50").Copy

到这个:

Worksheets(BodyNum).Range(BodyNum).Copy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM