是否有任何的方式在VBA批量重命名表:Excel VBA中:批次重命名表
是这样的:
sheets(array(1, 2, 3)).name = array("hep", "hey", "heppa!")
命名片材1,2,3为 “HEP”, “嘿”,并“heppa!”
是否有任何的方式在VBA批量重命名表:Excel VBA中:批次重命名表
是这样的:
sheets(array(1, 2, 3)).name = array("hep", "hey", "heppa!")
命名片材1,2,3为 “HEP”, “嘿”,并“heppa!”
这是接近我能得到它,别人可能会发现一个方法来跳过循环
[更新的标准方式,我会做到这一点下面包括错误处理 - 我还没有真正尝试放置纸张的集合,这样的前]
Normal Code
Sub Normal()
Dim strShtOld()
Dim strShtNew()
Dim sht As Worksheet
Dim lngSht As Long
strShtNew = Array("hep", "hey", "heppa!")
strShtOld = Array("Sheet1", "Sheeta2", "Sheet3")
On Error Resume Next
For lngSht = LBound(strShtOld) To UBound(strShtOld)
Set ws = Nothing
Set ws = Sheets(strShtOld(lngSht))
If Not ws Is Nothing Then ws.Name = strShtNew(lngSht)
Next lngSht
End Sub
为什么批量重命名,好奇或者说你有这么大的量重命名为做到这一点,你所关心的代码运行的?
Array Effort
Sub ArrayEx()
Dim varShts
Dim varSht
Dim strArray()
strArray = Array("hep", "hey", "heppa!")
Set varShts = Sheets(Array("Sheet1", "Sheet2", "Sheet3"))
For varSht = 1 To varShts.Count
varShts(varSht).Name = strArray(varSht - 1)
Next
End Sub
我已经创建了一个对宏:
微距1:
Sub Sheetlist()
Dim x As Integer
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "sheetlist"
Range("A1").Select
ActiveCell.FormulaR1C1 = "Sheet List"
Range("C1").Select
ActiveCell.FormulaR1C1 = "New List"
For x = 1 To Worksheets.Count
Cells(x + 1, 1).Value = Worksheets(x).Name
Next x
End Sub
此宏创建在当前工作簿片被称为 “sheetlist” 与当前工作簿中所有工作表的列表。该表还有一个标题为“新建列表”(C1)的列,您可以输入任意数量的表格名称作为要重命名的列。
你现在可以做的是消除你想从重命名过程中排除的列A1中的名称。确保列A和C中没有空格,并且A和C中的名称数量也匹配。
现在,您已经准备好运行的第二个宏:
Sub batchrename()
'
' batchrename Macro
'
Dim OldSheetName As String
Dim NewSheetName As String
Dim SheetCount As Integer
Dim NewSheetList As String
NewSheetList = InputBox("How many names are there?") + 1
For SheetCount = 1 To Range("C2:C" & NewSheetList).Count
OldSheetName = Sheets("sheetlist").Cells(SheetCount + 1, 1)
NewSheetName = Sheets("sheetlist").Cells(SheetCount + 1, 3)
Sheets(OldSheetName).Select
ActiveSheet.Name = NewSheetName
Next SheetCount
End Sub
此宏将转到sheetlist A中列出的名称,并将其更改为sheetlist C.列出的名称的提示会问你在哪里名单列表是,输入列C中的名称数量,然后按回车。
享受
那是什么,我落得这样做除了我并不完全确定数组赋值速记 – abcde123483 2011-12-30 14:07:41
+1这完全是可选的,但你也可以REDIM strArray并使它一个基于这样你就止跌” t需要在循环中从它中减去一个。 – JimmyPena 2011-12-30 16:23:42