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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2009, 22:28   #11
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
А какой диапазон ты имеешь в виду? Данный код удаляет только значения ячеек которые входят в именованный диапазон. Может быть нужно удалить список? (проверки данных)?
Диапазон, как говорил выше, задан переменной с формулой
Код:
=СМЕЩ(Лист1!$A$2;0;0;СЧЁТЗ(Лист1!$A$2:$A$3001);1)
Этот диапазон должен использоваться для заданий исходных данных для списка, но пока до этого дело не дошло.
Скорее всего VBA не нравиться формула вместо прямого указания ячеек.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 28.05.2009, 23:02   #12
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Тогда это не именованный диапазон. А какое имя ты хочешь использовать в VBA?
Все таки рассмотри первое предложение. Ячейка
Код:
$A$2
не меняется. Т.е. тебе нужно только менять адрес ячеки...
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 28.05.2009, 23:28   #13
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
Тогда это не именованный диапазон.
Скажем в случае со списком эксель считает это именованным диапазоном.
Цитата:
Сообщение от mchip Посмотреть сообщение
А какое имя ты хочешь использовать в VBA?
Не понял вопроса...
Цитата:
Сообщение от mchip Посмотреть сообщение
Все таки рассмотри первое предложение. Ячейка
Код:
$A$2
не меняется. Т.е. тебе нужно только менять адрес ячеки...
Похоже что придется остановиться на этом как на рабочем варианте, но мне он не нравиться.

Код:
ActiveSheet.Range("A2", Selection.End(xlDown)).Clear
Очищает все, вплоть до оформления. Можно ли стереть только значения?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 29.05.2009, 00:02   #14
Acro
Пользователь
 
Регистрация: 21.10.2008
Сообщений: 39
По умолчанию

А какая версия МСО?
Я в 2003 например столкнулся с тем, что для того чтобы изменить RefersToR1C1 уже существующего в книге именного диапазона надо перед этим его всё равно "добавить":
Код:
ActiveWorkbook.Names.Add Name:="PAmp", RefersToR1C1:="=Info!R11C4:R" & LastRow + 7 & "C4"
Acro вне форума Ответить с цитированием
Старый 29.05.2009, 08:32   #15
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от Acro Посмотреть сообщение
А какая версия МСО?
Я в 2003 например столкнулся с тем, что для того чтобы изменить RefersToR1C1 уже существующего в книге именного диапазона надо перед этим его всё равно "добавить":
Код:
ActiveWorkbook.Names.Add Name:="PAmp", RefersToR1C1:="=Info!R11C4:R" & LastRow + 7 & "C4"
Я работаю в 2003. Попробую порыть в этом направлении.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 29.05.2009, 09:16   #16
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Все таки лучше присвоить диапазону имя и обращаться по имени. А насчет очистки - присвой пустое значение:
Код:
ActiveSheet.Range("A2", Selection.End(xlDown)).Value = ""
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 29.05.2009, 23:46   #17
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
Все таки лучше присвоить диапазону имя и обращаться по имени. А насчет очистки - присвой пустое значение:
Код:
ActiveSheet.Range("A2", Selection.End(xlDown)).Value = ""
Еще раз про адресацию... Что-то я ни как не въеду как оно в экселе...
Как проделать это же для другого (не активного) листа? Скажем есть с кодовым именем "Адрес". Подобная строка возвращает ошибку если выполняется из любого иного листа.
Код:
Адрес.Range("A2", Selection.End(xlDown)).Value = ""
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 30.05.2009, 00:07   #18
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Скорее всего не работает метод Range. Для таких случаев лучше обращаться к ячейкам через Cells
pivas вне форума Ответить с цитированием
Старый 30.05.2009, 00:14   #19
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от pivas Посмотреть сообщение
Скорее всего не работает метод Range. Для таких случаев лучше обращаться к ячейкам через Cells
Пытался, так же без положительного результата.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 30.05.2009, 00:27   #20
pivas
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 412
По умолчанию

Для очистки ячейки [А1] это выглядит так:
Sheets("Адрес").Cells(1, 1).Value = ""
т.е. в кде не должно присутствовать Select, Selection и т.п.
pivas вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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