首页 > 解决方案 > 创建循环以循环工作表

问题描述

我只是在学习 VBA for Excel。我正在观看一系列教程,并且有一个练习,我必须选择工作簿中的每个工作表并使用 .visible = False 将其隐藏。这是代码:

Sub doloop()

Worksheets("Introduction").Activate

Dim ws As Worksheet

ws = ActiveSheet

Do Until ws.Visible = False
ws.Visible = False

Loop


End Sub

这就是说 Do 行上的对象不是有效对象。我该如何解决?

标签: excelvba

解决方案


Dim ws As Worksheet
For each ws in ThisWorkbook.Worksheets
  'Note: at least 1 sheet must be visible at all times, in this case we choose the first sheet
  if ws.index = 1 then
    ws.visible = true
  else
    ws.visible = false
  end if
next

一个更小但更先进的替代方案是:

Dim ws as worksheet
For each ws in ThisWorkbook.Worksheets
  ws.visible = ws.index = 1
next

推荐阅读