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

Вход

Регистрация

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

 

= Мир MS Excel/выполнение макроса в опр диапазоне - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выполнение макроса в опр диапазоне (Макросы/Sub)
выполнение макроса в опр диапазоне
lamak58 Дата: Пятница, 24.06.2016, 17:53 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
можно ли заставить работать макрос в range (a1:z100) к примеру?
насущная проблема,кол-во строк в таблице 1000,макрос выполнять нужна на нескольких листах сразу,ждать приходится минут 5 гдето ....
 
Ответить
Сообщениеможно ли заставить работать макрос в range (a1:z100) к примеру?
насущная проблема,кол-во строк в таблице 1000,макрос выполнять нужна на нескольких листах сразу,ждать приходится минут 5 гдето ....

Автор - lamak58
Дата добавления - 24.06.2016 в 17:53
Roman777 Дата: Пятница, 24.06.2016, 17:57 | Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
lamak58, конечно можно:
[vba]
Код
Dim r as range
Set r = Range(a1:z100)
with r
что-то делаем
end with
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Пятница, 24.06.2016, 17:58
 
Ответить
Сообщениеlamak58, конечно можно:
[vba]
Код
Dim r as range
Set r = Range(a1:z100)
with r
что-то делаем
end with
[/vba]

Автор - Roman777
Дата добавления - 24.06.2016 в 17:57
lamak58 Дата: Понедельник, 27.06.2016, 12:29 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
попробовал,у меня видимо не работает :(
[vba]
Код
Sub VSE()
Dim t As Range
Dim r As Range
Dim rgn As Range
Set t = Range("a1:k10")
With t
For Each sh In ActiveWorkbook.Sheets
Set rgn = sh.UsedRange
For Each r In rgn.Cells
rgn.Cells.UnMerge
rgn.Cells.Replace What:=ChrW(8381), Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
If (r.Cells.Interior.ColorIndex <> -4142) And (r.Cells.Interior.ColorIndex <> 2)  Then
r.Cells.ClearContents
End If
Next
Next
End With
End Sub
[/vba]
 
Ответить
Сообщениепопробовал,у меня видимо не работает :(
[vba]
Код
Sub VSE()
Dim t As Range
Dim r As Range
Dim rgn As Range
Set t = Range("a1:k10")
With t
For Each sh In ActiveWorkbook.Sheets
Set rgn = sh.UsedRange
For Each r In rgn.Cells
rgn.Cells.UnMerge
rgn.Cells.Replace What:=ChrW(8381), Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _
MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
If (r.Cells.Interior.ColorIndex <> -4142) And (r.Cells.Interior.ColorIndex <> 2)  Then
r.Cells.ClearContents
End If
Next
Next
End With
End Sub
[/vba]

Автор - lamak58
Дата добавления - 27.06.2016 в 12:29
Alex_ST Дата: Понедельник, 27.06.2016, 12:43 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2899
Репутация: 505 ±
Замечаний: 0% ±

2003
[vba]
Код
   If Not Intersect(Target, range (a1:z100)) Is Nothing Then
[/vba]
Упс! Не почитал внимательно пост. Ответил на заголовок...
Это, похоже, не от той кобылы хвост.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Понедельник, 27.06.2016, 12:44
 
Ответить
Сообщение[vba]
Код
   If Not Intersect(Target, range (a1:z100)) Is Nothing Then
[/vba]
Упс! Не почитал внимательно пост. Ответил на заголовок...
Это, похоже, не от той кобылы хвост.

Автор - Alex_ST
Дата добавления - 27.06.2016 в 12:43
Roman777 Дата: Понедельник, 27.06.2016, 13:13 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 703
Репутация: 75 ±
Замечаний: 0% ±

Excel 2007, Excel 2013
lamak58, а так?
[vba]
Код
Sub VSE()
Dim r As Range
Dim rgn As Range
For Each sh In ActiveWorkbook.Sheets
  Set rgn = sh.Range("a1:k10")
  With rgn
    .Cells.UnMerge
    .Cells.Replace What:=ChrW(8381), Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _
    MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
  End With
  For Each r In rgn
     If (r.Interior.ColorIndex <> -4142) And (r.Interior.ColorIndex <> 2) Then
        r.ClearContents
     End If
  Next r
Next sh
End Sub
[/vba]


Много чего не знаю!!!!

Сообщение отредактировал Roman777 - Понедельник, 27.06.2016, 13:14
 
Ответить
Сообщениеlamak58, а так?
[vba]
Код
Sub VSE()
Dim r As Range
Dim rgn As Range
For Each sh In ActiveWorkbook.Sheets
  Set rgn = sh.Range("a1:k10")
  With rgn
    .Cells.UnMerge
    .Cells.Replace What:=ChrW(8381), Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows, _
    MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
  End With
  For Each r In rgn
     If (r.Interior.ColorIndex <> -4142) And (r.Interior.ColorIndex <> 2) Then
        r.ClearContents
     End If
  Next r
Next sh
End Sub
[/vba]

Автор - Roman777
Дата добавления - 27.06.2016 в 13:13
lamak58 Дата: Понедельник, 27.06.2016, 13:57 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 45
Репутация: 0 ±
Замечаний: 20% ±

Excel 2007
а так?

работает!да еще как,почти моментально шерстит листы.Только я заменил range на usedrange в строке [vba]
Код
Set rgn = sh.UsedRange,
[/vba] а то всякие бывают таблицы.
 
Ответить
Сообщение
а так?

работает!да еще как,почти моментально шерстит листы.Только я заменил range на usedrange в строке [vba]
Код
Set rgn = sh.UsedRange,
[/vba] а то всякие бывают таблицы.

Автор - lamak58
Дата добавления - 27.06.2016 в 13:57
Мир MS Excel » Вопросы и решения » Вопросы по VBA » выполнение макроса в опр диапазоне (Макросы/Sub)
Страница 1 из 11
Поиск:

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