簡體   English   中英

每2秒保存一次Excel文件,無需使用宏

[英]Save Excel file in every 2 second without using macro

我想每2秒保存一次Excel。 數據通過DDE在此excel中更新,並且希望每2秒讀取一次此數據。 不幸的是,這些數據沒有保存在硬盤上。

我知道可以在指定的時間點后用於保存文件的宏,但不想使用宏。

由於此表中的數據通過DDE頻繁更新(每100 MS),因此表更改事件觸發得太頻繁。

以下是我嘗試但未成功的代碼。

Dim ctme, ptme As Integer

Private Sub Workbook_Open()
  ctme = Second(Now)
  ptme = ctme - 2

End Sub

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
ctme = Second(Now)

If (ctme - ptme) = 2 Then
 Me.Save
 ptme = ctme

End If


End Sub

請幫忙

Nidhi,這里的人們正在努力為您提供幫助,您需要了解的是,沒有人能動腦筋來理解您實際要問的問題。 因此,在提出任何答案之前先提出問題以清楚地理解問題是很自然的。 當這里的人們無法理解一個簡單的問題時,他們同樣會感到沮喪,他們的時間本來可以很容易地節省下來,但如果他們花一些額外的時間來更好地說明問題的話。 因此,給予那些試圖幫助您的人以信譽,將不會造成任何傷害。

好,回到您的問題。 我可能是錯的,但我認為在DDE更新時不會觸發SheetChange事件。 如果我錯了,請糾正我。

下一個選項可以是Application.OnTime功能。

在工作簿打開方法中編寫以下代碼:

Private Sub Workbook_Open()
    Dim currentTime As Date
    currentTime = DateAdd("s", 2, Now)
    Application.OnTime currentTime, "SaveFile"
End Sub

然后添加一個新模塊,並在新模塊中添加以下功能:

Public Sub SaveFile()
    ThisWorkbook.Save

    Dim currentTime As Date
    currentTime = DateAdd("s", 2, Now)
    Application.OnTime currentTime, "SaveFile"
End Sub

上面的代碼將創建一個計時器,該計時器每兩秒鍾運行一次以保存文件。 這種方法各有利弊,但這是Excel最好的Timer功能。 如果您有任何疑問,請告訴我。

謝謝,維卡斯

(這完全脫離了OP標簽,但只是以為我提出了一個可能的選擇)

創建一個小型.NET控制台應用程序。

用戶可以使用其中一個Timer對象來創建所需的此定時循環。

然后,在每次循環掃描時使用對Excel Interop庫的引用,看起來您可能需要打開此工作簿,保存它,然后再次將其關閉......取決於書中的計算和Excel文件實際上可以在您的計算機上在2秒內打開/計算/保存嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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