Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2018, 15:13   #11
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Dim pc&, Cnt&, c1&, Lc&


Sub Main()
  Dim rg As Range
  On Error Resume Next
  Set rg = Application.InputBox("Отметьте любую ячейку в колонке", "Укажите стартовую колонку", ActiveCell.Address(False, False), Type:=8)
  c1 = rg.Column:  pc = c1 - 1: If Err Then Exit Sub
  Set rg = ActiveSheet.UsedRange:  Lc = rg.Column + rg.Columns.Count - 1
  On Error GoTo 0
  Cnt = Val(InputBox("Укажите число", "Сколько серых колонок скроллировать?", 3)): If Cnt = 0 Then Exit Sub
  SelectCnt
  ScrollScr
End Sub


Sub ScrollScr()
  ActiveWindow.SmallScroll ToRight:=Selection.Columns.Count: pc = pc + Selection.Columns.Count
  If pc < Lc Then SelectCnt: Application.OnTime Now + 1 / 24 / 3600, "ScrollScr" Else pc = c1 - 1: Cells(1, c1).Select
End Sub


Sub SelectCnt()
  Const cr = 14408667
  Dim c&, gCnt&:  c = pc
  Do While gCnt < Cnt And c < Lc
    c = c + 1: If Cells(1, c).Interior.Color = cr Then gCnt = gCnt + 1
  Loop
  Columns(pc + 1).Resize(, c - pc).Select
End Sub
Вложения
Тип файла: zip file1.zip (22 байт, 121 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 28.11.2018, 17:56   #12
shchnad
Пользователь
 
Аватар для shchnad
 
Регистрация: 26.11.2018
Сообщений: 10
Хорошо

Огромное спасибо IgorGo! Это именно то, что было нужно...! Код я не поняла, буду разбираться в следующие дни. Но то, что это работает, это просто песня!!! Риторический вопрос, такими умными нужно родиться или можно стать?!
Aleksandr.H также спасибо за выправку моей лабуды, она хоть и двигалась, но правильно не работала...last получался не тем, что было задумано...

IgorGo, не будет наглостью попросить чуть подправить? так как первое выделение пролетает быстрее секунды, нужно, чтобы оно длилось также секунду, как и последующие. И еще, подскажите пжл, как выполнение макроса приостановить или остановить полностью? есть какие-то раскладки клавиш встроенные?

Чтоб добавить что-то к своему сообщению, используйте кнопку "Правка", а не пишите несколько сообщений подряд.

Последний раз редактировалось Вадим Мошев; 04.12.2018 в 17:48.
shchnad вне форума Ответить с цитированием
Старый 28.11.2018, 19:04   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

что первый фрагмет был виден 1 сек
замените строку:
ScrollScr
в процедуре Main на:
Application.OnTime Now + 1 / 24 / 3600, "ScrollScr"

дело в том, что этот макрос срабатывает 1 раз в секунду и очень стремительно. успеть в этот момент нажать Ctrl+Pause/Break - практически не реально
поэтому чтобы остановить этот макрос (эти макросы):
когда уже все начало работать перейдите в окно редактора, поставьте точку останова (BreakPoint) в одной из строк процедуры ScrollScr
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 28.11.2018 в 19:09.
IgorGO вне форума Ответить с цитированием
Старый 28.11.2018, 19:14   #14
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
Риторический вопрос, такими умными нужно родиться или можно стать?!
дело не в уме
понимаете, даже медведей в цирке учат кататься на велосипедах... я в программировании более 30 лет, было бы очень странно и даже обидно, если бы вообще ничему не научился за это время
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 29.11.2018, 13:22   #15
shchnad
Пользователь
 
Аватар для shchnad
 
Регистрация: 26.11.2018
Сообщений: 10
По умолчанию

огромное спасибо!
shchnad вне форума Ответить с цитированием
Старый 30.11.2018, 14:25   #16
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

трудно сказать, что Вам там удается сделать не так.
все у Вас правильно написано и должно работать.
закройте другие файлы, оставьте 1
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 30.11.2018, 17:13   #17
shchnad
Пользователь
 
Аватар для shchnad
 
Регистрация: 26.11.2018
Сообщений: 10
Хорошо

спасибо, заработало!!!
shchnad вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа VBA с удаленной БД Ципихович Эндрю Microsoft Office Word 0 01.03.2017 17:47
Работа с массивами (VBA) yura13 Помощь студентам 0 01.12.2013 14:58
Работа с формой VBA Игорь Новый Microsoft Office Excel 6 08.12.2012 13:17
Работа со строками в VBA dimok5 Помощь студентам 7 14.02.2011 16:46
работа с диапазонами-столбцами polukaroff Microsoft Office Excel 7 27.11.2009 20:37