Я написал очень простой код, который возвращает последние 6 символов каждой активной ячейки в пределах диапазона.VBA Right-Function, возвращающий неправильный тип данных
Код работает очень хорошо, пока не найдет определенную ячейку, в которой должны быть возвращены символы: «MARC01». К сожалению, он возвращает символ типа даты (01.Mrz).
Используя обычную формулу excel, она работает нормально, поэтому я ожидаю, что она также будет работать с макросом.
Здесь вы можете увидеть мой код, который принимает строку из столбца «А» и вводит его в колонке «B»:
Range("B12").Activate
Do
ActiveCell.Value = Right((ActiveCell.Offset(0, -1).Value), 6)
ActiveCell.Offset(1, 0).Activate
Loop Until ActiveCell.Offset(0, -1).Value = 0
Я рекомендую вам изменить «.value» на «.Formula», так как, в общем, .Value может дать различные результаты в зависимости от форматирования, в то время как .Formula более или менее ядро числовая/текст привести себя. Не уверен, что это устраняет вашу конкретную проблему. –
@ Grade'Eh'Bacon - ни .Formula, ни .Value2 не устраняет проблему. – ZygD