Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Последовательное выделение столбцов в диапозоне - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательное выделение столбцов в диапозоне
Последовательное выделение столбцов в диапозоне
Whiskey Дата: Понедельник, 03.06.2013, 13:55 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

2010,2013
Здравствуйте дамы и господа.
По мере освоения excel столкнулся с такой вот проблемкой, как выделить N-й столбец, провернуть в нем некие действия, затем выделить след. столбец за ним, провернуть в тем теже действия и так пару сотен раз. Теперь немного подробнее, что я в идеале хочу сделать но не знаю как:

1) определить диапазон данных (в примере это E:J)
2) выделить столбец E
3) применить к выделенному столбцу макрос:

Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "0"

4) выделить столбец F и применить к выделенному столбцу тот же макрос, и так до столбца J

P.S. выделить весь массив и применить необходимые действия не представляется возможным поскольку оригинальный файл выходит на 200 столбцов и 50 тыс строк, и эксель тупо виснет...

Спасибо за помощь
К сообщению приложен файл: 5314945.xlsx (11.5 Kb)
 
Ответить
СообщениеЗдравствуйте дамы и господа.
По мере освоения excel столкнулся с такой вот проблемкой, как выделить N-й столбец, провернуть в нем некие действия, затем выделить след. столбец за ним, провернуть в тем теже действия и так пару сотен раз. Теперь немного подробнее, что я в идеале хочу сделать но не знаю как:

1) определить диапазон данных (в примере это E:J)
2) выделить столбец E
3) применить к выделенному столбцу макрос:

Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.FormulaR1C1 = "0"

4) выделить столбец F и применить к выделенному столбцу тот же макрос, и так до столбца J

P.S. выделить весь массив и применить необходимые действия не представляется возможным поскольку оригинальный файл выходит на 200 столбцов и 50 тыс строк, и эксель тупо виснет...

Спасибо за помощь

Автор - Whiskey
Дата добавления - 03.06.2013 в 13:55
Serge_007 Дата: Понедельник, 03.06.2013, 14:01 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
А зачем забивать пустые ячейки нулями?

Можно циклом, но быстро точно не будет
[vba]
Код
Sub Whiskey()
     Dim q As Range
     For Each q In Range("e2:j41")
         If q = "" Then q = 0
     Next
End Sub
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеА зачем забивать пустые ячейки нулями?

Можно циклом, но быстро точно не будет
[vba]
Код
Sub Whiskey()
     Dim q As Range
     For Each q In Range("e2:j41")
         If q = "" Then q = 0
     Next
End Sub
[/vba]

Автор - Serge_007
Дата добавления - 03.06.2013 в 14:01
Whiskey Дата: Понедельник, 03.06.2013, 14:25 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

2010,2013
Serge_007, это для базы под СПСС, он гад не воспринимает пустые ячейки
 
Ответить
СообщениеSerge_007, это для базы под СПСС, он гад не воспринимает пустые ячейки

Автор - Whiskey
Дата добавления - 03.06.2013 в 14:25
Whiskey Дата: Понедельник, 03.06.2013, 15:15 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

2010,2013
Попробовал, действительно не слишком быстро, а что если попробовать в такой же последовательности как я прописал, такое вообще возможно? или это будет еще дольше?
 
Ответить
СообщениеПопробовал, действительно не слишком быстро, а что если попробовать в такой же последовательности как я прописал, такое вообще возможно? или это будет еще дольше?

Автор - Whiskey
Дата добавления - 03.06.2013 в 15:15
Serge_007 Дата: Понедельник, 03.06.2013, 15:32 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Whiskey)
если попробовать в такой же последовательности как я прописал, такое вообще возможно?
Возможно. Но по времени будет так же


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Whiskey)
если попробовать в такой же последовательности как я прописал, такое вообще возможно?
Возможно. Но по времени будет так же

Автор - Serge_007
Дата добавления - 03.06.2013 в 15:32
Whiskey Дата: Понедельник, 03.06.2013, 15:47 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

2010,2013
Цитата (Serge_007)
Возможно. Но по времени будет так же

Даже если по времени так же, не могли бы Вы показать как (если не сложно), просто для собственного понимания, так сказать на будущее(и удовлетворения моего любопытства)
 
Ответить
Сообщение
Цитата (Serge_007)
Возможно. Но по времени будет так же

Даже если по времени так же, не могли бы Вы показать как (если не сложно), просто для собственного понимания, так сказать на будущее(и удовлетворения моего любопытства)

Автор - Whiskey
Дата добавления - 03.06.2013 в 15:47
AndreTM Дата: Понедельник, 03.06.2013, 16:26 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1762
Репутация: 500 ±
Замечаний: 0% ±

2003 & 2010
Whiskey,
Не забывайте отключать-включать обновление листа (Application.ScreenUpdating) и автопересчет (Application.Calculation) на время работы цикла - возможно, у вас в диапазоне много формул, которые пересчитываются при каждом чихе, вот и набегает время...


Skype: andre.tm.007
Donate: Qiwi: 9517375010
 
Ответить
Сообщение Whiskey,
Не забывайте отключать-включать обновление листа (Application.ScreenUpdating) и автопересчет (Application.Calculation) на время работы цикла - возможно, у вас в диапазоне много формул, которые пересчитываются при каждом чихе, вот и набегает время...

Автор - AndreTM
Дата добавления - 03.06.2013 в 16:26
Serge_007 Дата: Понедельник, 03.06.2013, 16:45 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (Whiskey)
просто для собственного понимания
Смотрите аналогичный код здесь:
http://www.programmersforum.ru/showthread.php?t=237955


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (Whiskey)
просто для собственного понимания
Смотрите аналогичный код здесь:
http://www.programmersforum.ru/showthread.php?t=237955

Автор - Serge_007
Дата добавления - 03.06.2013 в 16:45
KuklP Дата: Понедельник, 03.06.2013, 18:19 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Что за ...?
[vba]
Код
Public Sub www()
     On Error Resume Next
     Intersect(ActiveSheet.UsedRange, ActiveSheet.[e:j]).SpecialCells(4).Value = 0
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЧто за ...?
[vba]
Код
Public Sub www()
     On Error Resume Next
     Intersect(ActiveSheet.UsedRange, ActiveSheet.[e:j]).SpecialCells(4).Value = 0
End Sub
[/vba]

Автор - KuklP
Дата добавления - 03.06.2013 в 18:19
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Последовательное выделение столбцов в диапозоне
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!