如果 case 值为“否”,我会尝试隐藏一列。
我将其保存在工作表中,而不是模块中。
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Activate
If Not Application.Intersect(Range("C9"), Range(Target.Address)) Is Nothing Then
Select Case Target.Value
Case Is = "Yes":
Rows("10:10").EntireRow.Hidden = False
Case Is = "No":
Rows("10:10").EntireRow.Hidden = True
End Select
End If
End Sub
工作表计算事件
-
练习册
下载(Dropbox)
- If
Yes
and No
正在被一个公式改变,Worksheet Change
当值改变时,事件不会被触发。
- 将第一个代码复制到标准模块, e.g.
Module1
(VBE>>插入>>模块)。
- 将第二个代码复制到片材模块, e.g.
Sheet1
.
- 将第三段代码复制到本工作簿模块.
Module1
Option Explicit
Public strYesNo As String
Sub YesNo(CellRange As Range, HideRow As Long)
Const str1 As String = "Yes"
Const str2 As String = "No"
With CellRange
If .Value <> strYesNo Then
Select Case strYesNo
Case str1
.Worksheet.Rows(HideRow).Hidden = False
Case str2
.Worksheet.Rows(HideRow).Hidden = True
End Select
strYesNo = .Value
End If
End With
End Sub
Sub YesNo1()
Const cSheet As Variant = "Sheet1"
Const cRange As String = "C9"
Const cCol As Long = 10
YesNo ThisWorkbook.Worksheets(cSheet).Range(cRange), cCol
End Sub
Sheet1
Option Explicit
Private Sub Worksheet_Calculate()
YesNo1
End Sub
本练习册
Option Explicit
Private Sub Workbook_Open()
YesNo1
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)