我很擅长使用VBA,我相信我需要的以下代码会非常简单,但我对Worksheet_Change事件的曝光非常有限。
我希望在单元格更改其值时运行宏。 (有关详细信息,请参阅附图)
我认为正常的宏代码看起来与下面的内容类似,但不确定如何将其合并到工作表更改宏中
import java.time.{Instant, LocalDateTime, ZoneId, ZoneOffset}
val epochSecond = System.currentTimeMillis() / 1000
LocalDateTime.ofInstant(Instant.ofEpochSecond(epochSecond), ZoneId.systemDefault())//method1
LocalDateTime.ofEpochSecond(epochSecond, 0, ZoneOffset.MAX)//method2
答案 0 :(得分:1)
以下内容更改了Select Case statement的嵌套If语句。这提供了更多的可读性,并且如果需要,应该易于扩展。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E6")) Is Nothing Then
On Error GoTo bm_Safe_Exit
Application.ScreenUpdating = False
Application.EnableEvents = False
Columns("CG:ES").Hidden = False
Select Case Range("E6").Value2
Case 5
Columns("CG:ES").Hidden = True
Case 6
Columns("CT:ES").Hidden = True
Case 7
Columns("DG:ES").Hidden = True
Case 8
Columns("DT:ES").Hidden = True
Case 9
Columns("EG:ES").Hidden = True
End Select
End If
bm_Safe_Exit:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
在处理过程中关闭事件和屏幕更新。前者并非绝对必要,但后者应该减少屏幕'闪光'。
Worksheet_Change事件宏通过右键单击工作表名称选项卡并选择查看代码进入工作表代码页。
答案 1 :(得分:0)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$E$6" Then
' your logic here by switching on Target.Value
End If
End Sub