[英]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.