簡體   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