我在VBA中遇到過一個非常奇怪的錯誤,想知道是否有人可以擺脫一些光線?VBA即時窗口與應用程序運行時間有何不同?
我打電話工作表函數是這樣的:
Dim lMyRow As Long
lMyRow = WorksheetFunction.Match(vItemID, rngMyRange.Columns(1), 0)
這是爲了讓我通過在該項目的排在某些情況下(雖然我不能牽制什麼時候),調用Match函數時會發生奇怪的事情。
如果我執行在即時窗口那行,我得到如下:
lMyRow = WorksheetFunction.Match(vItemID, rngMyRange.Columns(1), 0)
?lMyRow
10
即查找作品,並lMyRow得到分配給它的價值。如果我讓該語句在實際代碼中執行,則我的lMyRow值爲0.
這似乎很奇怪!我不明白如何在立即窗口中執行某些操作可以成功地分配一個值,在程序執行過程中的相同位置,在代碼中正常運行時,同一個調用可以賦值0。
我能想到的唯一的事情就是它是一些奇怪的轉換事件,但是如果我分配的變量是int,double或者甚至是一個字符串,我會得到相同的行爲。
我甚至不知道從哪裏開始 - 幫助!
是啊,這是一個有趣的一個 - 的99.9%,這一呼籲的作品,我不能確定它失敗時的區別是什麼! – 2008-12-09 14:58:45