根据不同选项卡上的单元格值重命名选项卡

时间:2018-08-24 14:07:23

标签: excel vba

我有一个包含14个标签的工作簿。我想重命名4个标签。要重命名的标签将使用其他标签上的单元格值,其中不包含非法字符或长度限制。

我进行了研究,但只发现了每个工作簿上单元格位于同一位置的位置。

如果单元格值为空白或0,我想隐藏选项卡。

要重命名的工作表:

  • 摘要1
  • 摘要(2)
  • 摘要(3)
  • 摘要(4)

具有用于重命名的单元格值的工作表:

  • 总体摘要
    • 汇总1的A24单元格
    • 单元格A25中的摘要(2)
    • 摘要的单元格A26(3)
    • 摘要的单元格A27(4)

3 个答案:

答案 0 :(得分:0)

<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tellus ipsum, posuere a tincidunt non, Ut elit leo, ultrices mollis metus non,<span></span> </p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec tellus ipsum, posuere a tincidunt non, consectetur et mi. Sed congue ornare lorem, et placerat velit tempus nec. Ut elit leo, ultrices mollis metus non,<span></span> </p>

等等...

对于具有空白的单元格,您必须小心隐藏,因为可能会有多个。

示例:

Sheets("Summary 1").Name = Sheets("Overall Summary").Range("A24").Value

答案 1 :(得分:0)

该人有望完成您想要的工作。

它会浏览ActiveWorkbook中的每个工作表,如果名称包含"Summary",它将向下移动到A工作表的"Overall Summary"列中,并尝试获取新的您要添加的名称。

如果在"Overall Summary"中查看的单元格为0或空白,它将将该摘要工作表重命名为"Hide X",但请注意,它可以为您隐藏工作表:)

Sub RenameSummary()

    Dim objRegex
    Set objRegex = CreateObject("vbscript.regexp")

    Dim offset As Long

    Dim ws As Worksheet
    For Each ws In ActiveWorkbook.Worksheets
        If InStr(LCase$(ws.name), "summary") > 0 Then

            With objRegex
                .Global = True
                .Pattern = "[^\d]+"
                offset = CLng(.Replace(ws.name, vbNullString))
            End With

            With sheets("Overall Summary").Range("A" & (23 + offset))
                If Len(.Value2) = 0 Or .Value2 = 0 Then
                    ws.name = "HIDE " & .row
                    'ws.Visible = xlSheetHidden     'can directly hide sheet
                Else
                    ws.name = .Value2
                End If
            End With

        End If
    Next ws

End Sub

答案 2 :(得分:0)

您可以尝试

config.js