【发布时间】:2016-02-02 04:35:05
【问题描述】:
我正在尝试编写一些 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
【问题讨论】:
-
你把代码放在哪里了?它应该在工作簿对象 (ThisWorkbook) 的私有模块中。那是你的问题,是的,代码有效,只是在打开时没有触发?
-
是的,它是
ThisWorkbook对象。当我打开工作簿时,我收到以下错误:Run-time error 91: Object variable or With block variable not set。当我点击“调试”时,突出显示的行是targ="DETAILS!B6"。也许这是我分配给targ变量的值