Сохранить нули при передаче колонки в массив - VBA

Узнай цену своей работы

Формулировка задачи:

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

Решение задачи: «Сохранить нули при передаче колонки в массив»

textual
Листинг программы
  1.     arrData = rngX.Value
  2.     For r = 1 To rngX.Rows.Count 'проходим по столбцу ШК с целью получения значений в соответствии с форматом
  3.        arrData(r, 1) = rngX.Cells(r, 1).Text
  4.     Next

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы