求仅首次激活工作表时选中A5单元格的VBA脚本
实现工作表首次激活时选中A5的VBA方案
方案一:当前Excel会话内仅首次激活执行
在目标工作表的代码模块中插入以下代码:
' 模块级变量,记录工作表是否已被首次激活 Private hasActivated As Boolean Private Sub Worksheet_Activate() If Not hasActivated Then Range("A5").Select hasActivated = True ' 标记为已激活状态 End If End Sub
原理:模块级变量hasActivated在当前Excel会话中会保留状态,第一次激活工作表时执行选中操作并标记状态,后续切换回该工作表时不再触发。
方案二:跨Excel会话仅首次激活执行(关闭再打开文件仍生效)
如果需要关闭Excel后重新打开文件,依然只在首次激活时执行选中操作,可以使用工作表自定义属性来持久化标记:
Private Sub Worksheet_Activate() Dim activationFlag As Object ' 检查是否存在激活标记属性 On Error Resume Next Set activationFlag = Me.CustomProperties("HasActivated") On Error GoTo 0 If activationFlag Is Nothing Then Range("A5").Select ' 添加自定义属性作为激活标记 Me.CustomProperties.Add Name:="HasActivated", Value:="Completed" End If End Sub
原理:通过给工作表添加自定义属性HasActivated来记录激活状态,该属性会随文件保存,即使关闭再打开文件,只要属性存在就不会重复执行选中操作。
内容的提问来源于stack exchange,提问作者Archie Weber
相关产品推荐
相关产品推荐

