我正试图编写一些VBA代码,如果隐藏了另一个特定行,将取消隐藏整行。该宏还根据特定列中的值隐藏了一系列行。这方面工作正常 - 我有可靠的代码。我无法获得我描述的第一个功能。应该很容易做,只是不知道语法。这个子程序应该在打开工作簿时执行。VBA - 基于另一行的隐藏/未隐藏状态隐藏/取消隐藏行
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim targ As Range
Dim msg As Range
targ = "DETAILS!B6"
msg = "DETAILS!B42"
msg.EntireRow.Hidden = True
With Range("DETAILS!B6:B40")
.EntireRow.Hidden = False
For Each cell In Range("DETAILS!B6:B40")
Select Case cell.Value
Case Is = 0
cell.EntireRow.Hidden = True
End Select
Next cell
End With
If targ.EntireRow.Hidden = True Then
msg.EntireRow.Hidden = False
End If
Application.ScreenUpdating = True
End Sub
你在哪里放置了这段代码?它应该位于Workbook Object(ThisWorkbook)的专用模块中。这是你的问题是的,代码的作品,它只是没有公开发射? – BruceWayne
是的,它是'ThisWorkbook'对象。当我打开工作簿时,出现以下错误:运行时错误91:对象变量或块变量未设置。当我点击“调试”时,突出显示的行是'targ =“DETAILS!B6”'。也许这是我分配给'targ'变量的值 –