当前:我有一些代码可以根据D2:D5范围内的单元格值更新4个标签页(Sheet6,Sheet7,Sheet8,Sheet10)。此范围填充有公式,该公式可能会导致空白,并且位于名为“计算”的选项卡上。每个单元格都与一个特定的标签相关联:
D2-> Sheet6。如果单元格D2为空白或0,则隐藏选项卡。如果不是空白,请在单元格D2中用文本命名Sheet6。 D3-> Sheet7。如果单元格D3为空白或0,则隐藏选项卡。如果不是空白,请在单元格D3中用文本命名Sheet7。 D4-> Sheet8。如果单元格D4为空白或0,则隐藏选项卡。如果不是空白,请在单元格D4中用文本命名Sheet8。 D5-> Sheet10。如果单元格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个选项卡(Sheet6,Sheet7,Sheet8,Sheet10)的范围。如果单元格E1 = False,则使用范围D2:D5命名选项卡。如果单元格E1 = True,则使用范围F2:F5命名选项卡。我希望应用相同的逻辑,如果要使用的范围中的任何单元格为空白或0,则将其完全隐藏。
答案 0 :(得分:1)
除非您缺少代码,否则似乎您已经在假设您的代码正常工作了。
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
未经测试,写在手机上。