1
我已經聲明瞭一個靜態變量用作項目計數器。電子表格將由運行代碼的不同人員更新並隨後保存工作簿。然而,當我測試我的代碼,使任何更改,靜態變量重置爲1
:用作項目計數器的靜態變量的生存期
Static strn, mechn, ein As Integer
Dim i, lrow As Long
Dim num as String
Set wb = ThisWorkbook
Set ws = wb.Sheets("test")
lrow = ws.Range("A" & Rows.Count).End(xlUp).Row
i = 1
If reqb = "blah" Then
Do Until ws.Range("B" & i).Value = "bloop"
i = i + 1
Loop
strn = strn + 1
num = "1-" & strn
End If
將以往任何時候復位後,我完成我的代碼?
每次關閉wkb時它都會被重置。如果您想製作某種計數器,您可以將該值放入一個單元格中,並且每次用戶運行該子程序時都會將該值添加到該單元格值,並以此方式獲取所需計數。如果您打開工作簿,則一旦設置了代碼,就會顯示變量不會重置。 –
你*知道只有'ein'實際上是一個'Integer'嗎? 'strn'和'mechn'都被隱式聲明爲'Variant'。與「我」一樣;只有'lrow'是一個'Long'。如果您的代碼中有很多這樣的代碼,[Rubberduck](http://www.rubberduck-vba.com)代碼檢查可以幫助您通過幾次點擊來修復它們。 –
至於變量的生命期...您需要告訴我們這個代碼的位置以及它的作用域。 –