我正在尝试使用Excel自动执行以下过程,但我遇到了一些困难,因为很明显我需要在OFFSET函数中设置一个变量:
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次!)
谢谢!
答案 0 :(得分:1)
在您正在使用的工作簿的 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