[英]Runtime error '70': Permission Denied VBA word
我正在嘗試創建一個倒計時計時器。
在運行代碼時,我在modtimer模塊中的代碼行中獲得了“運行時錯誤'70':權限被拒絕”: time = time + TimeValue("00:00:01")
00:00:01 time = time + TimeValue("00:00:01")
。
我創建了一個用戶窗體和一個單獨的名為modtimer的模塊,代碼如下:
Word文檔代碼:(ThisDocument)在Word文檔打開時顯示計時器
Sub Document_Open()
UserForm1.time_left.Visible = False
UserForm1.Label1.Visible = False
UserForm1.Show
End Sub
userform中給出的代碼如下:
Dim g_start As Variant
Dim start As Variant
Dim timeEnd As Variant
Dim g_time As Variant
Dim time As Variant
Dim g_timeEnd As Variant
Dim time_duration As Variant
Dim g_time_duration As Variant
Dim g_End As Boolean
Private Sub btnStart_Click()
start = Now
g_start = Format(start, "hh:mm:ss")
timeEnd = Now + TimeValue("00:30:00")
g_timeEnd = Format(timeEnd, "hh:mm:ss")
time_duration = timeEnd - start
g_time_duration = Format(time_duration, "hh:mm:ss")
Label1.Visible = True
time_left.Caption = g_time_duration
time_left.Visible = True
btnStart.Visible = False
time = start + TimeValue("00:00:01")
time_duration = timeEnd - time
g_time_duration = Format(time_duration, "hh:mm:ss")
time_left.Caption = g_time_duration
modtimer.time_count
End Sub
模塊代碼如下:
Sub time_count()
If time_duration = TimeValue("00:05:00") Then
MsgBox "Only 5 minutes remaining", vbInformation
End If
time = time + TimeValue("00:00:01")
time_duration = timeEnd - time
If time_duration = TimeValue("00:00:00") Then
g_End = True
End_Exam
End If
'If g_End = True Then
' End_Exam
'End If
g_time_duration = Format(time_duration, "hh:mm:ss")
time_left.Caption = g_time_duration
Call time_count
End Sub
Sub End_Exam()
MsgBox "Examination Time has Expired, Click Ok to Submit", vbCritical
'Documents.Save False, wdOriginalDocumentFormat
Documents.Close wdPromptToSaveChanges, wdPromptUser
End Sub
背后的原因是什么? 有人可以幫忙嗎?
時間是vba函數( 也是vba語句btw )。
定義一個具有相同名稱的變量不是一個好主意。
在用戶窗體中,您正在使用變量重載函數,但是在模塊中,每次使用Time
都是指標准函數(或語句),而不是用戶窗體中的變量。
順便說一句,默認情況下,用戶窗體中的變量是私有的,因此您無法從模塊訪問用戶窗體中的time
變量,需要指定Public
而不是Dim
。
一旦變量為Public
,就可以訪問它,但需要使用Userform1.time
而不是time
。
但它仍然不是一個好主意,將其命名為time
附加說明:
在模塊中,在行中
time = time + TimeValue("00:00:01")
第一次是時間聲明(更改系統時間)
第二時間是時間函數(返回當前時間)
因此,您嘗試將系統時間設置為當前時間+ 1秒。
僅當您具有提升的權限時才可以執行此操作,因此會出現Runtime error '70': permission denied
。
Time
是VBA的屬性,它是只讀的(它提供了實際的時間)。 如果需要變量,請使用其他名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.