返回

用VBA小代码一键批量取消隐藏工作表,让你事半功倍!

Excel技巧

前言

在日常办公中,使用 Excel 处理大量工作表时,有时我们需要隐藏一些工作表以简化视图或保护数据。但是,当我们需要取消隐藏这些工作表时,一个一个手动取消既费时又容易出错。今天,我们将介绍一个VBA小代码,它可以帮助我们一键批量取消隐藏工作表,极大地提高我们的工作效率。

VBA代码:批量取消隐藏工作表

Sub UnhideAllSheets()
  Dim ws As Worksheet
  For Each ws In ActiveWorkbook.Worksheets
    If ws.Visible = xlSheetHidden Then ws.Visible = xlSheetVisible
  Next ws
End Sub

如何使用?

  1. 打开要取消隐藏工作表的 Excel 工作簿。
  2. 按下 Alt + F11 打开 VBA 编辑器。
  3. 在插入菜单中选择“模块”。
  4. 将上述 VBA 代码复制并粘贴到模块中。
  5. 点击“运行”按钮或按 F5 运行代码。

原理说明

该 VBA 代码使用了一个 For Each 循环来遍历工作簿中的所有工作表。对于每个工作表,它检查其 Visible 属性是否为 xlSheetHidden,如果是,则将其设置为 xlSheetVisible,从而取消隐藏该工作表。

其他有用的VBA小代码:批量提取单元格内的超链接地址

除了批量取消隐藏工作表,我们还经常需要从单元格中提取超链接地址。下面是一个 VBA 代码,可以帮助我们批量提取所有单元格内的超链接地址:

Sub ExtractHyperlinks()
  Dim ws As Worksheet
  Dim rng As Range
  Dim hyperlink As Hyperlink
  Dim arrHyperlinks() As Variant
  Dim i As Long

  Set ws = ActiveSheet
  Set rng = ws.UsedRange

  ReDim arrHyperlinks(1 To rng.Cells.Count)

  For i = 1 To rng.Cells.Count
    If rng.Cells(i).Hyperlinks.Count > 0 Then
      Set hyperlink = rng.Cells(i).Hyperlinks(1)
      arrHyperlinks(i) = hyperlink.Address
    End If
  Next i

  ws.Cells(1, 1).Resize(UBound(arrHyperlinks), 1).Value = arrHyperlinks
End Sub

如何使用?

  1. 打开包含超链接的 Excel 工作簿。
  2. 按下 Alt + F11 打开 VBA 编辑器。
  3. 在插入菜单中选择“模块”。
  4. 将上述 VBA 代码复制并粘贴到模块中。
  5. 点击“运行”按钮或按 F5 运行代码。

原理说明

该 VBA 代码遍历工作表的已用区域,并检查每个单元格中是否存在超链接。如果存在超链接,则将其地址存储在数组 arrHyperlinks 中。最后,将数组中的地址写入工作表的第一列中。

结语

VBA 小代码可以帮助我们自动化重复性任务,提高办公效率。本文介绍的两个 VBA 代码,可以批量取消隐藏工作表和批量提取单元格内的超链接地址,为我们的日常办公提供了便捷的工具。希望大家灵活运用这些代码,在工作中事半功倍!