EXCEL VBA 所有工作薄OPEN事件

EXCEL VBA 所有工作薄OPEN事件,第1张

提问者采纳如果,我说的是如果,不存在workbook的open事件代码和Sheet1的Activate事件,那么工作簿被隐藏很有可能是曾经使用GetObject方法打开过并保存了。这种情况下,只要正常打开(比如双击)后,在VBA的立即窗口输入一次workbooks("文件名全称")Windows(1)Visible=True,并保存一次,以后就能正常了如果,存在Open事件的代码,那就酌情修改取消隐藏

在控件组合框change事件下的vba 赋值语句为

Private Sub aa_ComboBox_Change()

aa_ComboBoxList = Worksheets("data")Range("aa")Value

End Sub

将代码加进Workbook_Open事件即可,打开时添加OK

少了END IF(不过相信不是这个问题)

我觉得程序触发应该不是问题,不管你改动过没有,如果执行Save *** 作一定会触发的。。

问题可能是,修改了工作簿以后,未执行保存的情况下,点击关闭文档,系统会提示是否保存,如果回答不保存当然毫无疑议直接就退出了。。但是如果回答保存的情况下,你的过程被触发但是没能提供正确的密码时,虽然Cancel=True停止了Save的行为,但是没能cancel关闭动作而继续了文档的关闭动作。。。当然,如果这是你的期望结果的话,那就没有任何问题的了。。不过,,如果文档被修改后 *** 作者的原意可能并不想未保存就退出,那你的退出就比较突兀了。

如图,一般加个IF来判断当前单元格量是否是指定的单元格,是就执行代码。

Private Sub Worksheet_Change(ByVal Target As Range)

If TargetAddress = "$A$1" Then

    [a2] = [a2] + 1

End If

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

If TargetColumn = 1 Then

TargetOffset(0, 1) = ""

End If

End Sub

把下面子程序中的代码加入到workbook-open()事件中:

Sub aaa()

Dim t, d, n, dh, c

t = 0

d = Replace(Date, "-", "")

n = ThisWorkbookSheets("数据库")Range("a65536")End(xlUp)Row

For Each c In Range("a3:a" & n)

dh = Left(c, 8)

If dh = d Then

t = 1

num = 1 & Right(c, 3)

End If

Next c

If t = 1 Then

ThisWorkbookSheets("面板")Range("h2") = d & "-" & Right(num + 1, 3)

Else:

ThisWorkbookSheets("面板")Range("h2") = d & "-001"

End If

End Sub

以上就是关于EXCEL VBA 所有工作薄OPEN事件全部的内容,包括:EXCEL VBA 所有工作薄OPEN事件、Excel VBA程序开发、对组合框进行赋值的程序应该写在什么事件中、excel vba BEFORESAVE事件问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9761866.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存