带dynamic范围的macros循环

我试图使用Excel自动化下面的过程,但是我遇到了一些困难,显然我需要在OFFSET函数中设置一个variables:

Sheets("XXX").Visible = True Sheets("XXX").Select ActiveWorkbook.Names.Add Name:="XXX_aaa", RefersToR1C1:= _ "=OFFSET('XXX'!R2C1,0,1,COUNTA('XXX'!C1),21)" Sheets("XXX").Visible = False Sheets("YYY").Visible = True Sheets("YYY").Select ActiveWorkbook.Names.Add Name:="YYY_bbb", RefersToR1C1:= _ "=OFFSET('YYY'!R2C1,0,1,COUNTA('YYY'!C1),21)" Sheets("YYY").Visible = False Sheets("ZZZ").Visible = True Sheets("ZZZ").Select ActiveWorkbook.Names.Add Name:="ZZZ_ccc", RefersToR1C1:= _ "=OFFSET('ZZZ'!R2C1,0,1,COUNTA('ZZZ'!C1),21)" Sheets("ZZZ").Visible = False` 

有一个简单的macrosfunction,我可以使用这个任务自动化(它必须重复30次!)

谢谢 !

尝试使用您正在使用的工作簿的COPY

 Sub Sample() Dim intCurrentSheet As Integer Dim lngLastRow As Long For intCurrentSheet = 2 To 31 lngLastRow = Sheets(intCurrentSheet).Range("U1048576").End(xlUp).Row Sheets(intCurrentSheet).Range("A2:U" & lngLastRow).Name = Sheets(intCurrentSheet).Name & _ "_" & Chr(intCurrentSheet + 63) & _ Chr(intCurrentSheet + 63) & _ Chr(intCurrentSheet + 63) Sheets(intCurrentSheet).Visible = False Next intCurrentSheet End Sub