Мы разработали addin для перевода таких вещей, как номера/имена счетов и номера/имена МВЗ из нашей новой системы в нашу старую систему и наоборот. Он работал до сегодняшнего дня, когда я начал получать ошибку несоответствия типа (ошибка времени выполнения 13).Excel VBA Код ошибки ввода ошибки типа
У нас есть несколько листов. 1 лист для филиалов, 1 лист для учетных записей и т. Д. Форма, используемая для выполнения переводов, обращается к соответствующему листу для извлечения данных для перевода. Ниже приводится несколько переменных и как они объявлены:
Public UB as long
Public ThisAddIn as string
ThisAddIn = "TranslateAddIn.xla"
'Below is the part of the code that is causing the error.
UB = Workbooks(ThisAddIn).Worksheets("Branches").Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
Я проверил «ветвь» лист и не вижу ничего необычного с данными на этом листе.
Я не уверен, что происходит. Этот код работал годами без каких-либо проблем.
Любые предложения были бы весьма полезными. Спасибо за помощь.
Может быть, строка является int? Может быть, попробуйте определить UB как вариант, чтобы увидеть, разрешает ли это это? – tomatosource
@tomatosource 'Integer' и' Long' оба содержат числовые значения, только один имеет больший объем выделенной памяти и поэтому может содержать большие числа. Вы всегда должны использовать 'Long', когда ссылаетесь на номера строк, поскольку' Integer' является только 16-разрядный тип данных, поэтому любые цифры более 32,767 вызовут ошибку переполнения –
@MacroMan, за это хорошо знать. Не был уверен, как «тип-жесткий» vba. – tomatosource