這裏是我當前的代碼:Excel的VBA:變量重置爲0出於某種原因
Private Sub Workbook_Open()
sumn1 = Sheets("Main").Cells(1, 1).Value
sumn2 = Sheets("Main").Cells(2, 1).Value
sumn3 = Sheets("Main").Cells(3, 1).Value
sumn4 = Sheets("Main").Cells(1, 2).Value
sumn5 = Sheets("Main").Cells(2, 2).Value
sumn6 = Sheets("Main").Cells(3, 2).Value
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("Main").Cells(1, 1) = sumn1
Sheets("Main").Cells(2, 1) = sumn2
Sheets("Main").Cells(3, 1) = sumn3
Sheets("Main").Cells(1, 2) = sumn4
Sheets("Main").Cells(2, 2) = sumn5
Sheets("Main").Cells(3, 2) = sumn6
End Sub
所以,雖然該工作簿是開放的,它正在工作,一些動作變量sumn1後,sumn2..etc。 (這是全局變量)正在獲得附加值,例如+10到sumn1,或+5到sumn2等等。因爲我希望在關閉工作簿後保存它們,所以我將它們保存在一個我用「;;;」隱藏的單元格中。
的問題是,有時它工作正常,但有時(通常較長的時間,因爲工作簿已自閉後)變量重置爲0。
所以首先,是我的方法如何我的一個好嗎我正在保存數據還是因爲這種方法不好而無法工作?如果這是一個好方法,那麼我想我應該在別的地方尋找我的錯誤。
您可以使用工作表作爲存儲選項而不是始終引用變量嗎?當然,這種方式可能會使性能下降一小部分,但它會爲您存儲的值提供更加一致的體驗。 *編輯*:Bathsheba擊敗了我:) – jonifen
這樣的代碼位於一個工作簿「A」中,並且變量值正在保存在另一個工作簿「B」中,而沒有此VBA代碼。是否有可能打開工作簿「B」而沒有工作簿「A」的VBA並且變量被移動的單元格?那麼當你重新打開工作簿「B」時,其他一些具有不同值的單元格已經移動到他們的位置了? –