標題:
[發問]
VB更改win10系統時間,權限問題
[打印本頁]
作者:
blue2263
時間:
2016-11-5 12:28
標題:
VB更改win10系統時間,權限問題
下面程式碼,在Win7系統執行沒有問題,但如在Win10系統執行會出現下圖錯誤
請教大大,此問題要怎麼解決
Date = DateAdd("m", 1, Date) '日期 + 1個月
[attach]25728[/attach]
作者:
c_c_lai
時間:
2016-11-5 13:45
回復
1#
blue2263
Date = DateAdd("m", 1, Date) ' 日期 + 1個月
複製代碼
因為 Date 為系統之內在函數,
是不允許使用者任意更動的。
P.S. "Date" 為系統之保留字 (Reserved Word);
但如果修改為:
dd = DateAdd("m", 1, Date) ' 日期 + 1個月
複製代碼
則是 OK 的。
作者:
blue2263
時間:
2016-11-6 07:02
回復
2#
c_c_lai
C大你好
問題是,我在Win7系統執行沒問題,但在Win10系統上,會出現錯誤
不知有沒有更改Win10權限的方法?
作者:
c_c_lai
時間:
2016-11-6 07:44
本帖最後由 c_c_lai 於 2016-11-6 07:54 編輯
回復
3#
blue2263
一樣是使用同一 Office 版本?
我是用 Office 2010,一測便如同你發生的訊息。
據我所知 Office 2010 語法檢查比較嚴謹,它的
保留字或內在涵式是不能當變數使用拿來被 Assign 值的。
與 Windows 版本無關。
(沒有更改權限 指的就是以上的解說)
作者:
blue2263
時間:
2016-11-6 09:22
回復
4#
c_c_lai
我用的也是office2010
(沒有更改權限),了解謝謝
感謝C大解答
作者:
c_c_lai
時間:
2016-11-6 09:43
本帖最後由 c_c_lai 於 2016-11-6 09:54 編輯
回復
5#
blue2263
這三個例子,你用 F8 去執行,便可觀察出來:
Sub Ex()
Date = DateAdd("m", 1, Date) ' 日期 + 1個月
MsgBox Date
End Sub
複製代碼
Sub Ex2()
Dim Date
Date = DateAdd("m", 1, Date) ' 日期 + 1個月
MsgBox Date
End Sub
複製代碼
基本上,上兩個用法在正規的程式邏輯語法應用上是不被允許的,
這也是 VB 本身的語法漏洞,到了 Windows 10 內部作業系統程式庫
即將它補正了。
Sub Ex3()
Dim dd
dd = DateAdd("m", 1, Date) ' 日期 + 1個月
MsgBox dd ' 亦為日期型態
End Sub
複製代碼
作者:
blue2263
時間:
2016-11-6 13:59
回復
6#
c_c_lai
原來如此,了解了
謝謝C大解答
作者:
jackyq
時間:
2016-11-6 15:49
本帖最後由 jackyq 於 2016-11-6 15:53 編輯
VBA.Date 本身就是被設計成可以接受賦值的
https://msdn.microsoft.com/en-us/library/office/gg278644.aspx
(1) 回傳系統時間
Returns
a Variant (Date) containing the current system date.
(2) 設定系統時間 ( 所以是可以接受 Date = DateAdd("m", 1, Date) 的寫法 )
To set
the system date, use the Date statement.
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)