使用列表中的名称重命名选定的工作表

时间:2013-05-26 08:27:07

标签: excel vba excel-vba rename worksheet

我必须连续重命名我选择的纸张(纸张标签),以便通过新添加更新它们,即根据新名称,数字或其他标准对它们进行排序。

我已经在一个特定工作表中创建了一个表格,并在处理完该表后(更改名称,数字等),我想用它来重命名当前选定的工作表。

e.g。我选择任意5张,我想要一个代码,它将根据表格中的FIRST FIVE值重新命名这5张特别是SHEET。

我做了一点点划痕工作如下,但它并没有把我带到任何地方。

Sub Sheets_Naming_current()

Dim ws As Worksheet, wb As Workbook
Dim nmRange As Range
Dim count As Integer

Set wb = ActiveWorkbook
Set nmRange = wb.Sheets("Totals").Range("D2:D25")
count = 0
On Error Resume Next
For Each ws In ActiveWindow.SelectedSheets
 count = count + 1     
      ws.Name = nmRange.Offset(i, 0).Value
Next ws


End Sub

提前致谢!

2 个答案:

答案 0 :(得分:0)

您需要在循环内进行一些更改。

首先 - 您的i variable始终返回零,您需要在抵消时使用count variable

第二次 - 我建议您使用Cells()参考,而不是偏移量。

建议的循环可以如下:

'...your code here
For Each ws In ActiveWindow.SelectedSheets

      count = count + 1
      ws.Name = nmRange.Cells(count).Value

Next ws
'...your code here

答案 1 :(得分:0)

尝试以下代码:

Sub Sheets_Naming_current()

    Dim ws As Worksheet, wb As Workbook
    Dim count As Integer

    Set wb = ActiveWorkbook
    count = 2
    On Error Resume Next

    For Each ws In ActiveWindow.SelectedSheets
        With Sheets("Totals")
            If ws.Name <> "Totals" And .Cells(count, 4) <> "" Then
                ws.Name = .Cells(count, 4)
                count = count + 1
            End If
        End With
    Next ws

End Sub