Страницы: 1
RSS
Изменение цвета фона для большого кол-ва ячеек
 
Доброго времени суток, уважаемые форумчане. Не могу разобраться с проблемой , помогите, если можно. Итак, по ходу выполнения кода, переменная  cell_close принимает значение типа  "E62,E61,E13,E15,E7,E48,E10..." Таких адресов ячеек в реальном файле сейчас пару тысяч, а будет еще больше. Далее вышеперечисленные ячейки должны закраситься:
Код
Range(cell_close).Interior.Color = 255
НО тут и вылезает проблема. Когда тестил код, таких ячеек было с 10 и все работало правильно, а вот в реальном файле, код начинает ругаться: method range of object worksheet failed В прилагаемом файле переменная содержит 64 адреса и код не работает, стоит уменьшить до 61 и код срабатывает как надо. Я, так понял, превысил какое-то ограничение на кол-во адресов ячеек? Можно ли это как то обойти, если конечно дело в этом? В реальном файле, повторюсь, таких адресов будет несколько тысяч
P.S. Заранее спасибо всем откликнувшимся
Изменено: OlegO - 12.05.2021 20:30:14
 
сейчас наступит звездный час Jack Famous    :D  тут
OlegO, есть ограничение по длине строки в 256символов, которая используется для указателя диапазона.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
сейчас наступит звездный час  Jack Famous  
))))) с языка снял )
Изменено: New - 12.05.2021 20:53:31
 
Спасибо за ссылку, БМВ, завтра буду посмотреть (у меня уже ночь)
 
Код
Private Sub CommandButton1_Click()
  Dim s$, adr$, p&
  s = "E62,E61,E13,E15,E7,E48,E10,E45,E3,E32,E42,E24,E40,E43,E18,E56,E28,E65,E57,E58,E72,E67,E81,E82,E75,E92,E98,E89,E77,E86,E97,E59,E53,E90,E63,E85,E79,E84,E91,E73,E69,E2,E6,E12,E96,E64,E68,E80,E99,E60,E8,E88,E71,E1397,E78,E76,E39,E66,E110,E108,E87,E104,E105,E103,E109,E112"
  Do While Len(s) > 255
    adr = Left(s, 255): p = InStrRev(adr, ",")
    adr = Left(s, p - 1): s = Right(s, Len(s) - p)
    Range(adr).Interior.Color = 255
  Loop
  Range(s).Interior.Color = 255
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо большое, Ігор Гончаренко. Ваш вариант оказался для меня более понятным. Варианты от Jack Famous наверно для более серьезных задач и таких же серьезных знаний VBA. Я тоже уже приступил к варианту с циклом, но Ваш код гораздо понятнее и лаконичней моей попытки :oops: Еще раз спасибо.
Страницы: 1
Наверх