我已经为Excel工作表编写了一些VBA代码。问题是我只希望它运行一次,即当用户第一次打开它时。
如果第二次或多次打开,我希望Excel在不运行该VBA代码的情况下正常打开。如何使用VBA进行操作,或者有任何Excel功能? 预先感谢。
答案 0 :(得分:2)
简单,给工作表2一个特定的名称,并让宏检查该名称作为它的第一个任务,如果找到它,则结束,如果找不到,则运行其余代码...
答案 1 :(得分:1)
在excel的单元格中添加一个标志,每次打开excel时,宏代码都会检查该单元格中的值是否为“ 1”。如果为“ 1”,则第一次打开excel,否则该单元格的值将更改。
以下是代码:
Sub Workbook_Open()
Worksheets("your_wsname").Activate
'to check if it the file is being opened for the first time
If Cells(100, 100).Value = "1" Then
'value is blank if opening file for the first time
'if for first time then following happens
Else
'call your methods here
'set flag value 1 in one of the methods
End If
End Sub
答案 2 :(得分:0)
将代码存储在XLSM中(这是其中包含代码所必需的)。
set -x
MAIN_COMMAND="MYSQL_PWD=dbpass /usr/bin/mysql -u dbuser dbname <<< \"select 1 from dual;\""
MAIN_RESULT=$(eval "$MAIN_COMMAND" 2>&1)
触发
答案 3 :(得分:-2)
下面的代码每天运行一次,创建另一个工作表来记录事件,就像我在名为“事件记录”的工作表中创建时间线一样,然后让我的宏检查该特定日期以下的值(如果值> 0,那么宏将无法执行。
Private Sub Workbook_Open()
Dim Sh As Worksheet, i As Long, Cl As Long, Cntr As Long
Set Sh = ThisWorkbook.Worksheets("Event Recording")
Cl = Sh.UsedRange.Cells.Find(What:=Date).Column
Cntr = Sh.Cells(2, Cl)
If Cntr = 0 Then
MsgBox "Hi"
End If
Sh.Cells(2, Cl) = Cntr + 1
End Sub