2013-08-12 70 views
0

上午通過移動圖表循環顯示可見工作表

我需要一些幫助,但不確定從哪裏開始。

我有一個excel工作簿,它填充SQL存儲過程中的一個數據表。然後有一系列關閉數據的樞紐,所有這一切都很簡單。然後,我從這些樞軸創建圖表並將它們移到自己的工作表中。

我想要實現的是這些圖表的滾動儀表板,比如每30秒更換一張表格。我已經嘗試了幾件事,從這個網站上抓住了一些想法,但出於某種原因,帶有圖表的表單將不會與其他表單一起循環,因此實際上我只能看到我的數據頁面和數據透視表頁面。下面是我試圖修改我的目的的一些代碼。

Sub TabShow() 

Dim i As Integer 
Dim Pause As Double 

Pause = 3 'Pause delay 
Loops = 3 'How many loops do you want to do 

For j = 1 To Loops 

    For i = 1 To Worksheets.Count 

     Worksheets(i).Select 'Select the next worksheet 

     x = Timer 
     While Timer - x < Pause 'This does the pausing 
     Wend 

    Next i 
Next j 

End Sub 

因此,如果任何人有任何代碼循環通過可視工作表,包括一些移動圖表,我會永遠感激。

乾杯

回答

0

時間算術:在VBA,時間存儲在日期,作爲日期二​​進制等於雙人,作爲各單位一天。所以,Pause = 3意味着3天!更好:

Dim Pause As Date 
Pause = #0:0:30# 'Time constant 

我還建議使用Now代替Timer

程序流程:在運行宏時,Excel成爲irresponsive,除非你使用DoEvents

While Timer - x < Pause 'This does the pausing 
    DoEvents 
Wend 

這將確保您的工作簿將允許用戶交互,而宏運行。

但是,我不建議在工作時保持宏運行。檢查Application.OnTime以獲得更好的方法。

+0

對不起。當我嘗試上面的代碼時,我輸入了暫停=部分,但是當我移動到下一行時,它將更改爲上午12:00:30。對不起,如果這是我愚蠢的,VBA不是我最強 –

+0

這是正確的。 '#12:00:30 AM#'表示午夜後30秒,這就是VBA顯示時間的方式。 –