Function 具有动态范围的宏循环

Function 具有动态范围的宏循环,function,excel,offset,vba,Function,Excel,Offset,Vba,我正在尝试使用Excel自动化以下过程,但我遇到了一些困难,因为显然我需要在偏移函数中设置一个变量: 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("Y

我正在尝试使用Excel自动化以下过程,但我遇到了一些困难,因为显然我需要在偏移函数中设置一个变量:

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`
是否有一个简单的宏函数可以用来自动执行此任务(必须重复30次!)

谢谢

在您正在使用的工作簿的副本上尝试以下操作:

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
在您正在使用的工作簿的副本上尝试以下操作:

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

重复30次,你有多少张?你能给我们你想重复的索引表吗?1:30?比如说2:31?你必须至少有一张始终可见的表。是的,我有一张控制表。第2页到第31页必须重复。重复30次就是你有多少张?你能给我们你想重复的索引表吗?1:30?比如说2:31?你必须至少有一张始终可见的表。是的,我有一张控制表。必须对第2至31页重复该步骤。