更新excel VBA,为工作簿中的标签重命名选择范围

时间:2018-09-21 02:31:49

标签: excel vba excel-vba

当前:我有一些代码可以根据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,则将其完全隐藏。

1 个答案:

答案 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

未经测试,写在手机上。