gpt4 book ai didi

excel - 根据单元格值隐藏或取消隐藏工作表

转载 作者:行者123 更新时间:2023-12-03 01:31:53 26 4
gpt4 key购买 nike

我希望编写一段代码,根据单元格的值在 Excel 中隐藏或取消隐藏工作表。

我已经做到了

Sub Hide_Un()
If Range("b4").Value = "yes" Then
sheets(2).Visible = True
ElseIf Range("b4").Value = "no" Then
sheets(2).Visible = False
End If

If Range("b5").Value = "yes" Then
sheets(3).Visible = True
ElseIf Range("b5").Value = "no" Then
sheets(3).Visible = False
End If

大约有 100 个工作表,我无法每次添加新工作表时都执行此过程。

我需要一个代码来隐藏或取消隐藏每个工作表,具体取决于我对单元格的声明。

示例 B1="yes"(可见)或 B1="no"(不可见)

最佳答案

  1. Option Compare Text 使其不区分大小写。这样 YES = yes。如果没有这个选项,他们就不会平等
  2. 您可能需要考虑值既不是 yes 也不是 no 的选项。如果值为 ynyes 并带有滞后空格怎么办?
  3. 如果用户可以选择在书中添加/移动/删除工作表,则使用工作表索引号 (Sheet(n)) 可能会出现问题。
  4. 看起来行号与工作表编号相关,Sheet # = Row -2。我从 4 开始循环。最低的可能是 3 - 否则你最终会试图隐藏一个存在的工作表
<小时/>
Option Explicit
Option Compare Text

Sub Hide_Un()

Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("TOC")
Dim i

Application.ScreenUpdating = False
For i = 4 To ws.Range("B" & ws.Rows.Count).End(xlUp).Row
If ws.Range("B" & i) = "yes" Then
ThisWorkbook.Sheets(i - 2).Visible = xlSheetVisible
ElseIf ws.Range("B" & i) = "no" Then
ThisWorkbook.Sheets(i - 2).Visible = xlSheetHidden
Else 'What if the cell is neither?
'Do what you want if the cell is not "yes" or "no"
End If
Next i
Application.ScreenUpdating = True

End Sub

关于excel - 根据单元格值隐藏或取消隐藏工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51812648/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com