张文强 发表于 2022-11-25 13:10

按键精灵想做个辅助工具,全局变量问题咨询求助

各位大佬好,小弟使用按键精灵想做一个辅助工作,奈何能力有限,特来请教

软件版本2016,在论坛里下的

目前遇到的问题是,想讲通过获取系统时间后分离出来的日期 ddd 及 判断后的星期几 week定义为全局变量,但是第7行Global week 报错
语义错误:脚本 我的脚本1 ,第7行:错误的定义范围。错误附加码=2757:0

源文件如下:


Event Form1.Load
Form1.InputBox1.Text = "欢迎使用本工具"

sDate = Plugin.Sys.GetDateTime()//获取系统时间
//TracePrint "您的操作系统日期和时间:" & sDate
Global week
week = Weekday(sDate)
Dim MyArray
Dim yyy, mmm, ddd
Dim str
MyArray = Split(sDate, "-")
yyy = int(MyArray(0))//定义年
mmm = int(MyArray(1))//定义月
Dim MyArray1//分离日
MyArray1 = Split(MyArray(2), " ")
ddd = int(MyArray1(0))//定义日


Dim Ds, Df//定义开始日期结束日期
Ds = 1//默认开始第一天
Form1.ComboBox1.ListIndex = Ds - 1
Form1.InputBox1.Text = Form1.InputBox1.Text + vbcrlf + "默认起始日期:" & Ds & "日"
Delay 300

Df = ddd//默认结束为最后一天
Form1.ComboBox2.ListIndex = ddd - 1
Form1.InputBox1.Text = Form1.InputBox1.Text + vbcrlf + "默认结束日期:" & Df & "日"
Delay 300

End Event

Event Form1.LoadOver
//Delay 300
Form1.InputBox1.Text = Form1.InputBox1.Text + vbcrlf + "当前时间为:" & sDate//"今日是:"& yyy & "年" & mmm &"月" & ddd &"日"
//week = Weekday(sDate)
//MessageBox week

//TracePrint Df
End Event


Event Form1.ComboBox1.SelectChange
Delay 200
mmm = mmm
Ds =Form1.ComboBox1.ListIndex + 1
TracePrint Ds
Form1.InputBox1.Text = Form1.InputBox1.Text + vbcrlf +"已选择起始日期:" & Ds &"日"
End Event


Event Form1.ComboBox2.SelectChange
Delay 200
mmm = mmm
Df =Form1.ComboBox2.ListIndex + 1
Form1.InputBox1.Text = Form1.InputBox1.Text + vbcrlf +"已选择结束日期:" & Df & "日"
End Event



Event Form1.Button1.Click
Delay 500
Dim x, y, x1, y1, week1, A,Df

A = Df mod 7
week1 = week - A + 1

TracePrint week1
Form1.InputBox1.Text = Form1.InputBox1.Text + vbcrlf + "开始填报,今天为星期" & week

Delay 500
x = 500 + week * 150
y = 580
Form1.InputBox1.Text = Form1.InputBox1.Text + vbcrlf +"初始坐标为" & x &","& y

End Event

a1094426901 发表于 2022-11-25 14:34

week是不是关键字啥的?

Janision 发表于 2022-11-25 14:35

是不是sDate里带了时间的问题,把sDate里的时间去掉看看

yzjtxwd 发表于 2022-11-25 15:06

学习一下

zhhayu 发表于 2022-11-25 15:11

global放到第一行试试

ck1001CK 发表于 2022-11-25 16:12

楼主,你的脚本像vb,感谢分享

张文强 发表于 2022-11-25 16:37

a1094426901 发表于 2022-11-25 14:34
week是不是关键字啥的?

应该不是吧,局部变量中是可用的,错误代码是2757

xbang 发表于 2022-11-25 16:38

全局变量放在事件子程序外边

arighteye 发表于 2022-11-25 16:39

没太看懂,先赞为敬

张文强 发表于 2022-11-25 16:41

Janision 发表于 2022-11-25 14:35
是不是sDate里带了时间的问题,把sDate里的时间去掉看看

在事件1 Event Form1.Load 里没有问题
week = Weekday(sDate) 是整数型的周几
用messagebox输出 是5
但是在事件5 Event Form1.Button1.Click
中week值就变成0了,所以我怀疑是局部变量的问题
页: [1] 2 3
查看完整版本: 按键精灵想做个辅助工具,全局变量问题咨询求助