Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Специальная вставка. Значения.

9.8K
07 декабря 2005 года
Ilya_26
19 / / 29.09.2005
Хочу сделать макрос более универсальным. Имеется:
Код:
Sub SVZ()
Dim rRange As Range
Dim x As Range
    Do
        On Error Resume Next
        Set rRange = Application.InputBox(Prompt:="Select the formulas", _
        Title:="VALUES ONLY", Type:=8)
        If rRange Is Nothing Then Exit Do
        If rRange Is x Then Exit Do
        Set x = rRange
        rRange = rRange.Value
    Loop Until rRange Is Nothing
End Sub


Необходимо чтобы он заработал при включенном автофильтре, т.е. если фильтр выделяет 2,4,7ю строки, то при выделении диапазона A2:A7 значения должны вставляться только в A2,A4,A7. При этом A3,A5,A6 должны остаться нетронутыми.
Возможноли это и если да, то как?

P.S. Буду рад любой критике существующего макроса.
275
07 декабря 2005 года
pashulka
985 / / 19.09.2004
 
Код:
If Лист1.AutoFilterMode = True Then
   If Лист1.FilterMode = True Then
      With Лист1.AutoFilter
           For Each iCell In .Range.SpecialCells(xlVisible)
               iCell.Value = iCell.Value
           Next
      End With
   End If
End If
9.8K
07 декабря 2005 года
Ilya_26
19 / / 29.09.2005
Цитата:
Originally posted by pashulka
 
Код:
If Лист1.AutoFilterMode = True Then
   If Лист1.FilterMode = True Then
      With Лист1.AutoFilter
           For Each iCell In .Range.SpecialCells(xlVisible)
               iCell.Value = iCell.Value
           Next
      End With
   End If
End If



Спасибо, именно этого мне и не хватало!
Только я использовал часть кода без if - не будет ли проблемм?

 
Код:
For Each icell In rRange.SpecialCells(xlVisible)
      icell.Value = icell.Value
Next
275
07 декабря 2005 года
pashulka
985 / / 19.09.2004
Если убрать все инструкции If Then Else, то "теряется" привязка к установленному и применённому автофильтру, т.е. сокращённый вариант будет работать с любым диапазоном. Если это допустимо, то можно оставить всё как есть (конечно при условии, что rRange действительно представляет собой об'ект Range)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог