根据查找表重命名工作表

时间:2015-10-30 10:01:39

标签: excel vba excel-vba

我是新手,如果我没有正确发布,请原谅我。

我有一个Excel文件,其中包含各种表格,其中一些名为V1,V2,...最多可能为Error in match.fun(FUN) : 'var(x = dt, na.rm = T)' is not a function, character or symbol

我在'工作表名称'单元格V15中有一个表格:
B列包含当前工作表名称B2:C16 C列包含新的工作表名称/标签。

您是否能够提供一些VBA代码,以便能够将当前名为V1的工作表重命名为最大可能的V15到新值?

我根据列表中的命名表找到了相当多的东西,但没有找到vlookup样式。

V1-V15

非常感谢

2 个答案:

答案 0 :(得分:1)

这就是我开始的方式。如果循环遍历表并选择工作表(可以通过修改set rng语句来更改表的位置和大小),而不是循环遍历工作表然后尝试在表中找到答案,这将重命名所有在该范围内详述的工作表。

Sub RenSheets()  
    Dim rng as Range
    Dim c

    set rng = ThisWorkbook.Sheets("Sheet names").Range("B2:B16")

    For each c in rng.cells  
        ThisWorkbook.Sheets(c.value).Name = c.offset(0,1).value  
    Next c  
End Sub  

答案 1 :(得分:0)

尝试不使用Sheets(i).Name ...如果工作表订单发生变化,您可能会遇到麻烦

Sub RenSheets()
  Dim i As Integer
  For i = 2 To 16 'Your Range = B2:C16
    Sheets(Sheets("Sheet names").Cells(i, 2)).Name = _ 'sheet to rename
    Sheets("Sheet names").Cells(i, 3) 'new sheetname
  Next
End Sub