Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как определить принадлежность Cell-a Range-y? / 10 сообщений из 10, страница 1 из 1
13.01.2007, 23:25:59
    #34253813
noisette
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
Уважаемые!
Вот есть у меня активная ячейка листа Эксель (положим, А1) и есть некий Range("A1:B2").

Подскажите, как проще всего определить, принадлежит ли активная ячейка моему Range-у или не принадлежит?
...
Рейтинг: 0 / 0
13.01.2007, 23:38:43
    #34253820
noisette
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
Решение не самое рациональное, простым перебором:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Dim i As Integer
Range("D8:h19").Name = "ABC"
For i = 1 To Range("ABC").Cells.Count
If Target.Address = Range("ABC").Cells(i).Address Then
Target.Value = True
Exit For
End If
Next
End Sub

Как проще?
...
Рейтинг: 0 / 0
14.01.2007, 00:05:12
    #34253832
ILL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
наверное ты не по адресу (в оффиц форум надо)
ай эм крупный НЕспец по есцел, но кажется можно чтото типа IN
тобиш
Код: plaintext
if Worksheets("лист").Cell( 1 , 1 ) in Worksheets("лист").Range("A1:D10") then
на уровне идеи вроде все правильно - проверка входимости ячейки в область %)
...
Рейтинг: 0 / 0
14.01.2007, 01:37:32
    #34253886
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
Например так:
Код: plaintext
If Range("A1 A1:B2").Address = "$A$1" Then MsgBox "A1 - принадлежит A1:B2"

Тут подробнее.

...
Рейтинг: 0 / 0
14.01.2007, 02:08:49
    #34253899
lena_####
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
Код: plaintext
1.
2.
3.
4.
5.
Sub mySub()
  Dim v_Rng As Range
  Set v_Rng = ActiveSheet.Range("A1:B2")
  If TypeName(Intersect(v_Rng, ActiveCell)) = "Range" Then Debug.Print "принадлежит"
  If TypeName(Intersect(v_Rng, ActiveCell)) = "Nothing" Then Debug.Print "непринадлежит"
End Sub
...
Рейтинг: 0 / 0
14.01.2007, 09:54:16
    #34253940
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
lena_####
Код: plaintext
1.
Sub mySub()
End Sub


дорогая lena_####, вы всегда даете очень толковые советы, как и сейчас, поэтому, надеюсь, не обидитесь, что я перефразировал ваш ответ:). а то он уж слишком напоминал приемы программирования индусов, над которыми наши любят смеяться :)))…

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub mySub()
    If Intersect(Range("A1"), Range("A1:B2")) Is Nothing Then
        Debug.Print "непринадлежит"
    Else
        Debug.Print "принадлежит"
    End If
End Sub
...
Рейтинг: 0 / 0
14.01.2007, 15:01:00
    #34254120
lena_####
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
vbapro
Я не в коем случае не в обиде. Я еще учусь. Тут главное, чтобы в обиде не оказалась великая нация (я об индусах) :)
По сабжу.
Автору нужно выяснить:
авторпринадлежит ли активная ячейка моему Range-у или не принадлежит?
Так что я и в Ваш код внесу коррективы:
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub mySub()
    If Intersect(ActiveCell, Range("A1:B2")) Is Nothing Then
        Debug.Print "непринадлежит"
    Else
        Debug.Print "принадлежит"
    End If
End Sub
...
Рейтинг: 0 / 0
14.01.2007, 16:21:42
    #34254194
lena_####
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
lena_####Я не в коем случае не в обиде

Я ни в коем случае не в обиде. А то и впрямь индусская программистка :)
...
Рейтинг: 0 / 0
14.01.2007, 22:28:51
    #34254434
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
lena_####Так что я и в Ваш код внесу коррективы:
Код: plaintext
1.
2.
3.
4.
5.
6.
Sub mySub()
    If Intersect(ActiveCell, Range("A1:B2")) Is Nothing Then
        Debug.Print "непринадлежит"
    Else
        Debug.Print "принадлежит"
    End If
End Sub


Еще для смеха такой вариант:

Код: plaintext
1.
2.
Sub mySub()
   Debug.Print IIf(Intersect(ActiveCell, Range("A1:B2")) Is Nothing, "непринадлежит", "принадлежит")
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
15.01.2007, 14:18:37
    #34255767
noisette
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить принадлежность Cell-a Range-y?
С П А С И Б О !

одно только ма-а-аленькое изменение в ваши примеры кодов, уж не посетуйте: "не" с глаголом раздельно пишется. извините.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как определить принадлежность Cell-a Range-y? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]