2013-05-13 25 views
1

所以我已經看到所有的方法來隱藏在Excel中屏幕更新,我正在尋找的是一個數據問題,所以我想看到屏幕更新。有沒有一種方法可以在宏期間緩慢更新屏幕代碼?我試過如下:顯示宏執行的更新

'//////添加屏幕刷新看發生了什麼事 Application.ScreenUpdating =真 Application.Wait現在+ TIMEVALUE( 「00:00:01」) '/ ////

和所有我得到的是屏幕閃爍。

謝謝你對我優秀。

+2

在調試器中使用'F8'逐步執行代碼。您可以按照這種方式逐字逐句地瀏覽它。乾杯。 – 2013-05-13 19:37:01

+1

嗯,不明白爲什麼你想這樣做。如果你有問題,爲什麼不用斷點來調試? – 2013-05-13 19:37:15

+0

另外,使用'Locals'窗口或添加手錶,以便您可以監視您的變量所保存的值,並且'Immediate'窗口也可以幫助調試。 – 2013-05-13 19:38:56

回答

7

你所追求的是更好的調試錯誤的方法。 ScreenUpdating應用程序的屬性不是你想要的:)

相反,在您懷疑發生錯誤的位置或之前,使用F9在您的代碼中設置斷點。如果有必要,你可以把它放在你的第一行代碼中(如果你真的不知道錯誤發生在哪裏)。

這裏是一個斷點,它的紅色/栗色突出顯示的行:

Breakpoint

然後,使用F8鍵,可以通過行的代碼行步驟。

您可以根據需要添加儘可能多的斷點。按F5將只執行代碼直到下一個斷點,然後您將不得不按F8或F5繼續執行。

一些額外的東西來幫助你調試

使用本地窗口。

Locals Window

這說明你在範圍vairables,您可以點擊它們以查看其屬性的/ etc。正如你所看到的,我在一個相當複雜的應用程序中有一大堆變量。我發現immeidates窗口對於Object變量和數組非常有幫助。這裏是什麼樣子,當我展開一個數組變量,這樣我就可以看到它的所有內容:

Locals window closeup on an array variable

使用即時窗口查詢變量或執行的代碼之外的語句,這相當於Debug.Print聲明。例如,讓我們來檢查一下,如果一些變量的值是「9」,您可以:

?someVar = 9,然後按回車鍵。它會告訴你真或假。您可以直接通過?someVar查詢該值,並打印該值。

在這個截圖中,我檢查一個布爾值,它顯示我的價值是False。我也可以在本地窗口中驗證這一點。

Immediate Window

+1

感謝@DavidZemens,它發生了我真正想要的是針對這種特殊情況的Debug.Print。 – SQLHound 2013-05-13 20:04:03

+0

乾杯。當我自學VBA時,我希望有人告訴我這些事情。會爲我節省很多麻煩:) – 2013-05-13 21:05:23

0

屏幕更新只能在代碼開始時設置一次。 但是您需要將其放入循環中,或者在代碼行之間傳播。