指定单元格里面的,内容发生变化,触发事件,调用VBA代码。_sun0322-优快云博客_单元格变化触发vba
目录
■通过改变一个单元格的内容,出发一个事件,根据改变的内容,进行相应的处理。
■通过改变一个单元格的内容,出发一个事件,根据改变的内容,进行相应的处理。
具体内容是,有一个单元个,里面的内容可以选择,分别是”1 选择;2填空;3读程序;4写代码“
这里,实现的功能是,选择部分的列
(注:也就是选择题时,会有四个选项,所占的4列,填空题时,不需要这4列)
A
B
C
D
当题型"1选择"被选中时,显示,没有被选中时,隐藏
这里面需要学习的是对这种事件接收的处理的写法。
Worksheet_Change
※:函数要定义在 对应的【SheetN】中
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$E$1" Then
If Range("E1").Value = "1 選択" Then
Rows("4:7").Select
Range("B4").Activate
Selection.EntireRow.Hidden = False
End If
If Range("E1").Value <> "1 選択" Then
Rows("4:7").Select
Range("B4").Activate
Selection.EntireRow.Hidden = True
End If
End If
Application.EnableEvents = True
End Sub
■扩展1:保存时,触发处理
Workbook_BeforeSave
※:函数要定义在 对应的【Workbook】中
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Len(Worksheets("SheetName1").Range("A1")) = 0 Then
MsgBox "A1 Is Null", vbExclamation + vbOKOnly ’A1空的话,提示
Cancel = True ’不保存
End If
End Sub
---
■扩展2:打开Excel时,触发处理
VBA的代码,在Excel启动时自动执行_sun0322-优快云博客_打开excel自动运行vba
1.建立一个Auto的 モジュール
2.在里面写如下代码
Private Sub Auto_Open()
'Demand Summaryの工数表示期間 (「list」シートの「D2」セル)
Sheet2.Cells(2, 4) = 15
End Sub
---