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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2009, 05:30   #21
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

Цитата:
Как проделать это же для другого (не активного) листа? Скажем есть с кодовым именем "Адрес".
Попробуйте так:
Адрес.Range(Адрес.[A2], Адрес.[A2].End(xlDown)) = ""

или так
Адрес.Range(Адрес.[A2], Адрес.[A2].End(xlDown)).ClearContents
EducatedFool вне форума Ответить с цитированием
Старый 30.05.2009, 09:06   #22
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
Попробуйте так:
Адрес.Range(Адрес.[A2], Адрес.[A2].End(xlDown)) = ""
или так
Адрес.Range(Адрес.[A2], Адрес.[A2].End(xlDown)).ClearContents
Спасибо! Обо варианта работают.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 14.08.2009, 16:33   #23
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Можно ли по ячейке определить, входит ли она в какой-нибудь именнованный диапазон? и если да, то можно ли определить название этого диапазона?
eda вне форума Ответить с цитированием
Старый 14.08.2009, 16:42   #24
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Цитата:
Сообщение от eda Посмотреть сообщение
Можно ли по ячейке определить, входит ли она в какой-нибудь именнованный диапазон? и если да, то можно ли определить название этого диапазона?
Код:
Option Explicit

Sub Find_Range_Name()
    Dim rName
    For Each rName In ActiveWorkbook.Names
        If Not Intersect(ActiveCell, Range(rName.Name)) Is Nothing Then
            MsgBox "Эта ячейка входит в диапазон " & rName.Name, vbInformation, "Подсказка"
            Exit For
        End If
    Next rName
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 14.08.2009, 16:45   #25
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Большое спасибо!
Но возникает ошибка: Method 'Range' of object '_Global' failed

Последний раз редактировалось eda; 14.08.2009 в 16:49.
eda вне форума Ответить с цитированием
Старый 14.08.2009, 16:58   #26
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Номер 1004.
А можно ли по имени вычислить адресс диапазона?

Последний раз редактировалось eda; 14.08.2009 в 17:06.
eda вне форума Ответить с цитированием
Старый 14.08.2009, 17:06   #27
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Ну так...Это...У Вас именованные диапзаоны в книге имеются?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 14.08.2009, 17:12   #28
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Проверка на наличие именованных диапазонов и показ адреса.
Код:
Option Explicit

Sub Find_Range_Name()
    Dim rName, h
    If ActiveWorkbook.Names.Count = 0 Then MsgBox "Книга не содержит именованных диапазонов!", _
       vbCritical, "Ошибка": Exit Sub
    For Each rName In ActiveWorkbook.Names
        If Not Intersect(ActiveCell, Range(rName.Name)) Is Nothing Then
            MsgBox "Эта ячейка в ходит в диапазон " & rName.Name & vbCrLf _
                 & "Адрес диапазона: " & Range(rName.Name).Address(0, 0), vbInformation, "Подсказка"
            Exit For
        End If
    Next rName
End Sub
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 16.08.2009, 22:21   #29
sa672000
Новичок
Джуниор
 
Регистрация: 16.08.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от tae1980 Посмотреть сообщение
Имеем именной диапазон описанный следующем образом:
Код:
=СМЕЩ(Лист1!$A$2;0;0;СЧЁТЗ(Лист1!$A$2:$A$3001);1)
То есть возвращаемый диапазон будет изменяться в зависимости от заполнения. Как в VBA:
1. Узнать размер диапазона?
2. Очистить диапазон?
Допустим, указанный диапазон обзывается test
Тогда можно использовать следующий код:
Debug.Print Range("test").Rows.Count ' "Узнаем" размер
Range("test").ClearContents 'Очищаем. Но хорошо этот код будет работать только если значения вводятся подряд, без пропусков.
sa672000 вне форума Ответить с цитированием
Старый 17.08.2009, 11:14   #30
eda
Пользователь
 
Регистрация: 14.08.2008
Сообщений: 78
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
Ну так...Это...У Вас именованные диапзаоны в книге имеются?
Да, точно имеются.
Код:
Sub Find_Range_Name()
Dim rName, h
If ActiveWorkbook.names.count = 0 Then MsgBox "Книга не содержит именованных диапазонов!", _
   vbCritical, "Ошибка": Exit Sub
For Each rName In ActiveWorkbook.names
    If Not Intersect(ActiveCell, Range(rName.name)) Is Nothing Then
        MsgBox "Эта ячейка в ходит в диапазон " & rName.name & vbCrLf _
             & "Адрес диапазона: " & Range(rName.name).Address(0, 0), vbInformation, "Подсказка"
        Exit For
    End If
Next rName
End Sub
Но все равно вылетает та же ошибка. На строке: If Not Intersect(ActiveCell, Range(rName.name)) Is Nothing Then
eda вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. 0101 Помощь студентам 3 17.12.2009 23:57
работа с выделенным диапазоном nastya007 Microsoft Office Excel 5 13.03.2009 08:33
Как найти количество чётных чисел диапазоном от 1 до 11? SORIK Microsoft Office Excel 3 02.01.2008 23:37