Excel VBA根据图纸名称列表取消隐藏图纸(如果符合某些条件)
我有一个下面的代码,如果它们出现在B4和B35之间的列表中,则将其取消隐藏 我需要添加一种if语句,如果在相邻的列中它说“reserved”,那么不要取消隐藏它,否则取消隐藏它。我想我需要的代码是Excel VBA根据图纸名称列表取消隐藏图纸(如果符合某些条件),excel,vba,Excel,Vba,我有一个下面的代码,如果它们出现在B4和B35之间的列表中,则将其取消隐藏 我需要添加一种if语句,如果在相邻的列中它说“reserved”,那么不要取消隐藏它,否则取消隐藏它。我想我需要的代码是 If UCase$(Nm.Offset(0, 2).Value) <> "RESERVED" Then If UCase$(Nm.Offset(0, 1).Value) <> "2" Then 以下代码根据以下标准取消隐藏工作表: 工作表的名称在成本跟踪工作表的范围
If UCase$(Nm.Offset(0, 2).Value) <> "RESERVED" Then
If UCase$(Nm.Offset(0, 1).Value) <> "2" Then
以下代码根据以下标准取消隐藏工作表:
- 工作表的名称在
成本跟踪工作表的范围(“B4:B35”)内
- 右边的两列中不存在单词
RESERVED
(我还没有测试代码,但它应该可以工作…非常感谢您的代码,但是我遇到了以下行的问题,因为它说下标超出范围,您知道为什么吗?感谢工作表(myCell)。可见=True@Charlotte879-我想我没有编写
.Value
,因此它不接受范围参数。我编辑过。我一次又一次地尝试过,我知道我遗漏了一些非常简单的东西,但仍然得到相同的错误,下标超出了范围。当我将鼠标悬停在调试程序上时,它只会说myCell.value=empty,猜测它找不到代码的my cell部分,但不确定原因!无法表达我多么感谢你的帮助!非常感激。我现在收到了一个不同的错误,这让我充满希望!上面写着工作表专家。。编译错误,未定义子或函数。你以前看过吗?不知道如何纠正目前试图谷歌@夏洛特879-我在上次编辑时错误地删除了工作表列表
功能,我添加了它。
Sub Button5_Click()
Dim sh As Worksheet, ws As Worksheet
Dim shList As Variant
Set ws = ThisWorkbook.Sheets("Cost Tracking")
shList = Application.Transpose(ws.Range("b4:b35"))
For Each sh In ThisWorkbook.Sheets
If Not IsError(Application.Match(sh.Name, shList, 0)) Then
sh.Visible = Not sh.Visible
End If
Next
End Sub
Sub TestMe()
Dim ws As Worksheet
Dim myRange As Range
Dim myCell As Range
Set ws = ThisWorkbook.Worksheets("Cost Tracking")
Set myRange = ws.Range("b4:b35")
For Each myCell In myRange
If Not IsEmpty(myCell) _
And Not IsError(WorksheetExists(myCell.Value2)) _
And UCase(myCell.Offset(0, 2).Value <> "RESERVED") Then
Worksheets(myCell.Value).Visible = True
End If
Next
End Sub
Function WorksheetExists(sheetName As String) As Boolean
WorksheetExists = Not WorksheetFunction.IsErr(Evaluate("'" & sheetName & "'!A1"))
End Function
If Worksheets(myCell.Value).Visible = xlHidden Or _
Worksheets(myCell.Value).Visible = xlVeryHidden Then
Worksheets(myCell.Value).Visible = xlVisible
Else
'something else
End If