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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2011, 12:08   #1
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию определение пустого диапазона

народ, подскажите пожалуйста, что неправильно

надо: если выделенный диапазон, т.е. каждая клетка этого диапазона пустая, то закрасить этот диапазон

вот код:

Код:
   
For RowC = FirstRow To MaxRow
               
        If IsEmpty(Selection.Range) Then                    'РУГАЕТСЯ ЗДЕСЬ
            Selection.Range.Interior.Color = 3
        End If
        
        Selection.Offset(rowOffset:=1, columnOffset:=0).Select   'сдвиг выделения на строку вниз
 
Next RowC

Последний раз редактировалось Bape}l{ka; 22.06.2011 в 12:13.
Bape}l{ka вне форума Ответить с цитированием
Старый 22.06.2011, 12:43   #2
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Код:
Public Sub qq()
    Dim i&
    For i = 1 To 20
            Rows(i).Interior.ColorIndex = Abs((WorksheetFunction.CountA(Rows(i).Cells) = 0) * 3)
    Next
End Sub
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 22.06.2011 в 12:50.
kuklp вне форума Ответить с цитированием
Старый 22.06.2011, 13:08   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
If Selection.Address = Selection.SpecialCells(xlCellTypeBlanks).Address Then Selection.Interior.Color = 3
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.06.2011, 13:09   #4
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

> если выделенный диапазон, т.е. каждая клетка этого диапазона пустая, то закрасить этот диапазон

Попробуйте

if selection.text="" then selection.interior.colorindex=3
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 22.06.2011, 13:53   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Казанский, попробовал...
если отмечено больше 1 ячейки:
Run-time error 94
Invalid use of Null

это только у меня так?

то, что я написал то же не катит... надо еще ошибки отключать... а то, если среди отмеченных ни одной пустой ячейки - вылетает по 1004 ошибке(((
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 22.06.2011, 14:10   #6
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Игорь,
у меня нет ошибки (2007)!
Попробуй
Код:
If Null = "" Then
Из справки по If
Цитата:
Condition: A numeric expression or string expression that evaluates to True or False. If condition is Null, condition is treated as False
Если в ячейках разный текст, св-во Text возвращает Null. Null при сравнении с чем угодно дает Null, который для If равносилен False, что нам и нужно.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619

Последний раз редактировалось Казанский; 22.06.2011 в 14:24.
Казанский вне форума Ответить с цитированием
Старый 22.06.2011, 15:06   #7
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

у меня 2003
спасибо большое всем, попробую..

IgorGO - возьму наверно ваше за основу, отключу другие ошибки)

Цитата:
Если в ячейках разный текст, св-во Text возвращает Null. Null при сравнении с чем угодно дает Null, который для If равносилен False, что нам и нужно.
это не поняла..
Bape}l{ka вне форума Ответить с цитированием
Старый 25.07.2011, 10:58   #8
Bape}l{ka
Форумчанин
 
Аватар для Bape}l{ka
 
Регистрация: 25.05.2011
Сообщений: 249
По умолчанию

в итоге сделала так:
Код:
'Определение пустых диапазонов (просто считаем кол-во ячеек в диапазоне, если все пустые, то красим)
Dim FirstCol as Integer, MaxCol as Integer, FirstRow as Integer, MaxRow as Long
Dim CellCount as Long  'кол-во ячеек
Dim ColmCount as Integer   'кол-во колонок в диапазоне
CellCount = 0
ColmCount = 0
ColmCount = Selection.Columns.Count

For Roww = FirstRow To MaxRow
    For Colm = FirstCol To MaxCol
    
        If IsEmpty(Cells(Roww, Colm)) Then CellCount = CellCount + 1
        If ColmCount = CellCount Then Range(Cells(Roww, FirstCol), Cells(Roww, MaxCol)).Interior.ColorIndex = 3
    
    Next Colm
    'MsgBox ColmCount & " и " & CellCount
    CellCount = 0
 
Next Roww

Последний раз редактировалось Bape}l{ka; 25.07.2011 в 11:13.
Bape}l{ka вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определение крайних ячеек диапазона Айвенго Microsoft Office Excel 6 19.04.2011 19:02
определение границ диапазона sirius84 Microsoft Office Excel 21 09.12.2010 14:39
Определение диапазона и его выделение НеВа6464 Microsoft Office Excel 3 23.05.2009 18:27
Определение номера последней строки выделенного диапазона НеВа6464 Microsoft Office Excel 2 17.05.2009 14:36
Выборка пустого поля yulia БД в Delphi 2 09.05.2009 17:07