Я изучаю Excel VBA за последние два года, и у меня есть идея, что иногда уместно распоряжаться переменными в конце сегмента кода. Например, я видел, как это было сделано в этом бите, адаптированном из кода Ron de Bruin для переноса Excel в HTML:
Function SaveContentToHTML (Rng as Range)
Dim FileForHTMLStorage As Object
Dim TextStreamOfHTML As Object
Dim TemporaryFileLocation As String
Dim TemporaryWorkbook As Workbook
...
TemporaryWorkbook.Close savechanges:=False
Kill TemporaryFileLocation
Set TextStreamOfHTML = Nothing
Set FileForHTMLStorage = Nothing
Set TemporaryWorkbook = Nothing
End Function
Я немного поработал над этим и нашел очень мало того, как это сделать, и в одном сообщении на форуме о том, что локальные переменные не нужно очищать, так как они перестают существовать при End Sub
. Я предполагаю, что, основываясь на приведенном выше коде, это может быть неверно в End Function
или в других обстоятельствах, с которыми я не сталкивался.
Итак, мой вопрос сводится к следующему:
- Есть ли где-то в Интернете, которые объясняют, когда и почему для очистки переменных, и я просто не нашел его?
И если не может кто-то здесь объяснить, пожалуйста...
- Когда требуется переменная для Excel VBA, а когда нет?
- И более конкретно... Используются ли определенные переменные (общедоступные переменные? Функциональные переменные?), Которые дольше сохраняются в памяти чем подводные лодки, и поэтому могут возникнуть проблемы, если я не буду чистить после себя?