Excelmacros没有做什么?

这是我的第一个macros(第一次使用VBScript),所以它很可能是错误的,但我想通过我的工作簿中的每个工作表,并重命名工作表的值为工作表“A2”单元格的值。 正如名字所说,这个函数在我运行时没有做任何事情。 它正在运行。 这是我的代码:

Sub RenameSheets() Dim WS_Count As Integer Dim I As Integer ' Set WS_Count equal to the number of worksheets in the active ' workbook. WS_Count = ActiveWorkbook.Worksheets.Count ' Begin the loop. For I = 1 To WS_Count ActiveSheet.Name = ActiveSheet.Range("A2").Value Next I End Sub 

 Sub RenameSheets() Dim WS_Count As Integer Dim I As Integer WS_Count = ActiveWorkbook.Worksheets.Count For I = 1 To WS_Count Dim WS As Worksheet Set WS = ActiveWorkbook.Worksheets(I) 'Worksheet names can not be null If Len(WS.Cells(2, 1)) > 0 Then WS.Name = WS.Cells(2, 1) End If Next I End Sub 

您没有select不同的表格,所以ActiveSheet不会改变。 你可以在下面重写你的函数来得到预期的结果:

 Dim currentWorksheet as Worksheet For Each currentWorksheet in ActiveWorkbook.Worksheets currentWorksheet.name = currentWorksheet.Range("A2").Value Next currentWorksheet 

上面是一个for..each循环,将currentWorksheet设置到工作簿中所有工作表中的每个工作表。