簡體   English   中英

運行時錯誤“ 70”:權限被拒絕的VBA字

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM