Excel VBA установить код VBA для передачи по ссылке? - PullRequest
0 голосов
/ 28 марта 2019

У меня странное поведение.

Справочная информация - код Excel vba запускается на двух одинаковых компьютерах, оба имеют Win 10 64-битную и Office 365 Excel 32-битную.

В одной частиУ меня есть место, где я передаю переменную листа в другую переменную, что-то вроде этого:

Dim wb As Worksheet
Dim wt As Worksheet

'some part of code
'wb is alread set as some worksheet with data in current workbook

'and then I do something like this:
Set wt = wb
Set wb = ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.count))

, и в этой части кода на одном компьютере вес остается прежним (старый лист до добавления нового, поэтомуон передается по значению), а на другом компьютере происходит так, что wb и wt ссылаются на одну и ту же рабочую таблицу, поэтому это выглядит как передача по ссылке.

Я нигде в коде не объявляю использование passпо ссылке или по значению, так что, похоже, Excel имеет какое-то место в параметрах для его установки?

Странно, все остальные переменные также передаются по ссылке, например, string, int, long.

Кто-нибудь знает что-нибудь о общих настройках в VBA / Excel, так что все переменные по умолчанию передаются по ссылке?

Я на 100% уверен, что это проблема, так как я отлаживал кодe на обеих машинах, так что если в настройках нет места для установки передачи по ссылке по умолчанию, то может ли быть повреждена установка офиса?

...