更新excel VBA以选择在工作簿中重命名选项卡的范围



当前:我有代码根据范围 D4:D4:D2 中的单元格值更新 2 个选项卡(Sheet6、Sheet7、Sheet8、Sheet10(名称。此范围填充了公式,这些公式可能会导致空白,并且位于名为"计算"的选项卡上。每个单元格都与一个特定的选项卡相关联:

D2 ->表6。如果单元格 D2 为空白或 0,则隐藏选项卡。如果不为空,则使用单元格 D2 中的文本命名 Sheet6。 D3 ->表7。如果单元格 D3 为空白或 0,则隐藏选项卡。如果不为空,请使用单元格 D3 中的文本命名 Sheet7。 D4 ->表8。如果单元格 D4 为空白或 0,则隐藏选项卡。如果不为空,则使用单元格 D4 中的文本命名 Sheet8。 D5 ->表10。如果单元格 D5 为空白或 0,则隐藏选项卡。如果不为空,请使用单元格 D5 中的文本命名 Sheet10。

Sub RenameShts()
Dim Ws As Worksheet
Dim i As Long
Dim Nme As String
i = 2
For Each Ws In Sheets(Array(Sheet6.Name, Sheet7.Name, Sheet8.Name, Sheet10.Name))
Nme = Sheets("Calculations").Range("D" & i).Value
If Nme = "" Or Nme = "0" Or Nme = "0 0" Then
Ws.Visible = xlSheetHidden
Else
Ws.Name = Nme
End If
i = i + 1
Next Ws
End Sub

所需代码:更新当前代码以查看"计算"选项卡上的单元格 E1,以确定用于命名 4 个选项卡(工作表 6、工作表 7、工作表 8、工作表 10(的范围。如果单元格 E1 = False,则使用区域 D2:D5 命名制表符。如果单元格 E1 = True,则使用区域 F2:F5 命名制表符。我希望应用相同的逻辑,如果正在使用的范围内的任何单元格为空白或 0,则完全隐藏选项卡。

似乎你已经假设你的代码有效了,除非我错过了一些东西。

Option Explicit
Sub RenameShts()
Dim Ws As Worksheet
Dim i As Long
Dim Nme As String
Dim columnLetter as string
If Worksheets("Calculations").range("E1").value2 then columnLetter = "D" else columnLetter = "F"
i = 2
For Each Ws In Sheets(Array(Sheet6.Name, Sheet7.Name, Sheet8.Name, Sheet10.Name))
Nme = Sheets("Calculations").Range(columnLetter & i).Value
If Nme = "" Or Nme = "0" Or Nme = "0 0" Then
Ws.Visible = xlSheetHidden
Else
Ws.Name = Nme
End If
i = i + 1
Next Ws
End Sub

未经测试,在移动设备上编写。

最新更新