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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2010, 10:12   #1
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию Как прописать относительное выделение строк?

Доброго времени суток, о наездники клавиатуры!

Вопрос у меня возник следующий: есть большая-большая табличка. В 7ой строке и далее в каждой 12ой стоят числа до 14 столбца включительно. Макрос должен выполнить следующее:

1. Пройтись по каждому числу в строчке с числами, и если число <> нулю, то выделить область в 6 строк над этим числом, и 5 строк под этим числом. (Например, если число стоит в ячейке A7, то выделить нужно диапазон A1:A12)

2. Закончив с одной строкой с числами, перейти к следующей, расположенной на 11 строк ниже.

Итого, глобальная задача - выделить все диапазоны, в которых есть число не равное нулю.
Вложения
Тип файла: zip Ярлыки.zip (10.5 Кб, 12 просмотров)
Ogeris вне форума Ответить с цитированием
Старый 27.10.2010, 10:42   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

Ну если я правильно понял задание:
Код:
Public Sub VYD()
Dim V As Range
Dim S
Dim R, C
S = Лист6.Columns(1).Rows(65536).End(xlUp).Row
  Set V = Range("A1")
For R = 7 To S Step 12
    For C = 1 To 14
        If Cells(R, C).Value <> 0 Then
                Set V = IIf(V.Count = 1, Range(Cells(R - 6, C), Cells(R + 5, C)), Union(V, Range(Cells(R - 6, C), Cells(R + 5, C))))
        End If
    Next C
Next R
V.Select
End Sub
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 27.10.2010, 11:15   #3
nilem
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 616
По умолчанию

Вариант:
Код:
Sub ertert()
    Dim poz As Range, adr As String, rng As Range
    Set rng = Range("A1:N" & Cells(Rows.Count, 1).End(xlUp).Row + 5)
    rng.Interior.Color = xlNone
    Set poz = rng.Find(0, LookIn:=xlFormulas)
    If poz Is Nothing Then Exit Sub
    adr = poz.Address
    Do
        Range(poz.Offset(-6), poz.Offset(5)).Interior.ColorIndex = 36
        Set poz = rng.FindNext(poz)
    Loop While poz.Address <> adr
End Sub
nilem вне форума Ответить с цитированием
Старый 27.10.2010, 11:17   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложение. (условное форматирование)
Вложения
Тип файла: rar книга429.rar (8.6 Кб, 17 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 27.10.2010, 11:31   #5
Ogeris
Пользователь
 
Регистрация: 26.10.2010
Сообщений: 87
По умолчанию

2 alex77755
Точно! То, что нужно! Спасибо!

Последний раз редактировалось Ogeris; 27.10.2010 в 11:33.
Ogeris вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выделение цветом повторяющихся строк Wally-Val Microsoft Office Excel 4 29.08.2010 21:26
выделение строк ruavia3 Microsoft Office Excel 2 26.08.2009 13:36
выделение строк цветом в StringGrid kate158 Помощь студентам 1 06.08.2008 09:56
Выделение строк с... по - в SynEdit Noor Общие вопросы Delphi 2 29.12.2007 12:41