Страницы: 1
RSS
Макрос не видит данные в сжатом столбце
 
Приветствую специалистов и не только! Вот код, который прекрасно работает, когда ширина столбца с данными позволяет отобразить данные целиком
Код
Me.ListBox1.List(i, 8 = Cells(stroka, 27).Value 'номер УПД
Если сузить столбец (у пользователя маленький монитор), то макрос не видит данные, которые в нем содержатся. Предполагаю, что, если скрыть столбец, то макрос тем более ничего не увидит. Уверен, что в vba есть стандартные функции, позволяющие читать данные из скрытых или узких столбцов. Подскажите такие функции или поделитесь примером кода.
Спасибо всем, кто поможет новичку))
 
.Value возвращает значение ячейки и никак не зависит от её видимости или размера. Проблема где-то в другом месте.

Предложенная Вами строка странная и вообще должна выдавать ошибку при попытке запустить макрос.
Код
Me.ListBox1.List(i, 8 = Cells(stroka, 27).Value 'номер УПД
1. Не хватает закрывающей скобки.
2. Часть строки 8 = Cells(stroka, 27).Value при обработке будет рассматриваться как сравнение, а не присваивание и выдаст результат False или True. Оно точно так и предполагалось?
Изменено: Wiss - 05.12.2019 12:39:19
Я не волшебник, я только учусь.
 
Wiss, правильный код такой:
Код
Me.ListBox1.List(i, 8) = Cells(stroka, 27).Value 'номер УПД
Возможно, ошибка происходит в другой части макроса. есть похожий код:
Код
Me.ListBox1.List(i, 8) = Cells(stroka, 27).Text 'номер УПД
Других версий у меня нет - ссылка на этот столбец происходит только в этих двух местах.
 
Судя по всему, Jack Famous в следующем сообщении прав.

Поставьте брейкпоинт на этой строчке и проверьте для очистки совести что у вас в этот момент в переменной stroka и в самой ячейке. В части ячейки - в окне Immediate (Ctrl+G) можно написать ?Cells(stroka, 27).Value

Если stroka не ноль и правильная, но ?Cells(stroka, 27).Value выдаёт пусто, то скорее всего Cells(stroka, 27).Value ищет значение не на том листе, на котором Вы думаете.
Изменено: Wiss - 05.12.2019 12:32:25
Я не волшебник, я только учусь.
 
Цитата
VIZ_VIZ: Cells(stroka, 27).Text
выдаст ошибку (точнее решётки типа "######"), если данных не видно (в отличие от .Value)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous,спасибо за помощь. Идею понял - все меняем на value.
Спасибо всем, кто откликнулся - вы повысили мой уровень знаний!))
 
VIZ_VIZ, пожалуйста  :)
вам вообще-то то же самое Wiss ещё в #2 сообщил  :D
Цитата
Wiss: .Value возвращает значение ячейки и никак не зависит от её видимости или размера. Проблема где-то в другом месте
Изменено: Jack Famous - 05.12.2019 12:39:18
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх