Сохранить нули при передаче колонки в массив - VBA
Формулировка задачи:
Собственно имеется тестовый макрос
Его задача брать нужные куски таблицы и класть в двумерный массив, но вот проблема, часто попадаются файлы, в которых текстовое значение с нулём 0661148296948, а при копировании этот ноль режется, и в результате вместо правильных значений (см. вложение с исходными данными) с нулями впереди, имеем неправильные штрихкода товаров:
Пример такого файлы с таким исходными данными я привёл, эти прайсы приходят от поставщиков и повлиять на них никак не могу.
Пробовал класть в массив значения так
и так
ничто не помогает.
потом добавил обход по ячеёкам штрихкодов у поставщика с целью добавить апостроф перед таким значением:
помогло, но вот проблема, файлы имеют минимум 10к строк, и работа моего макросы увеличилась с 30 секунд до 4 минут.
И всё из за этого перебора =(
Кто что может посоветовать, как сохранить нули не прибегая к перебору ячеек?
Листинг программы
- Sub testMacros()
- With Workbooks("входные данные.xls").Sheets(1)
- Set rngX = .Range(.Cells(2, 2), .Cells(11, 3))
- End With
- arrData = rngX
- For i = 1 To UBound(arrData)
- Debug.Print arrData(i, 1)
- Next
- End Sub
Листинг программы
- 661148296450
- 661148296948
- 661148299000
- 661148327307
- 661148331830
- 661148337207
- 661148337382
- 661148350220
- 661148351395
- 661148353290
Листинг программы
- arrData = rngX.Value
Листинг программы
- arrData = rngX.Text 'выдаёт ошибку
Листинг программы
- For r = 1 To rngSHK.Rows.Count 'проходим по столбцу ШК с целью добавить апостроф перед текстом, чтобы сохранить нули в начале ШК
- rngSHK.Cells(r, 1).value = "'" & rngSHK.Cells(r, 1).Text
- Next
Решение задачи: «Сохранить нули при передаче колонки в массив»
textual
Листинг программы
- arrData = rngX.Value
- For r = 1 To rngX.Rows.Count 'проходим по столбцу ШК с целью получения значений в соответствии с форматом
- arrData(r, 1) = rngX.Cells(r, 1).Text
- Next
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д