Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
1

В VBA Екселя нужно считать имя ячейки

08.09.2010, 12:42. Показов 4166. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Господа, подскажите как быть.
в VBA Екселя нужно считать имя ячейки, т.е. она у меня именованная. Как это сделать??? Заранее благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.09.2010, 12:42
Ответы с готовыми решениями:

Задать имя ячейки в виде переменной в VBA
Есть пример: выделения незаполненных ячеек цветом Range(Cells(iStart, 11), Cells(n +...

Возможно ли средствами VBA удалить уже существующее имя ячейки рабочего листа?
Возможно ли средствами VBA удалить имя, уже существующее, ячейки рабочего листа ?

Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки
Здравствуйте. Столкнулся с проблемой. Необходимо на листе Excel Залить, предположим, ячейку "C4"...

Нужно чтобы макрос обработал все файлы екселя в определенной папке
Есть файлы екселя по купленным товарам в валюте за каждый день. Один файл отображает список один...

14
1123 / 234 / 37
Регистрация: 15.03.2010
Сообщений: 714
08.09.2010, 13:21 2
MsgBox Range('a1').Name.Name по моему так
0
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
08.09.2010, 13:26  [ТС] 3
спасибо! все правильно) только он еще пишет имя странички, а оно мне не нать)
0
0 / 0 / 1
Регистрация: 08.04.2009
Сообщений: 17
08.09.2010, 13:35 4
если она у тебя текущая, то
Names(ActiveCell).Name

если присвоить имя, например, ячейке B2, то по абсолютной ссылке что-то типа
Names(ActiveWorkbook.ActiveSheet.Range('B2')).Name
0
1123 / 234 / 37
Регистрация: 15.03.2010
Сообщений: 714
08.09.2010, 14:14 5
Это потому, что у тебя имена описаны на уровне листа. Откуси имя листа, например так:
MsgBox Replace(Range('a1').Name.Name, ActiveSheet.Name & '!', '')
и все дела.
0
1123 / 234 / 37
Регистрация: 15.03.2010
Сообщений: 714
08.09.2010, 14:21 6
Да еще учти, если есть аналогичное имя уровня книги можешь попасть в неприятности(при подстановке имени в Range)
0
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
08.09.2010, 17:01  [ТС] 7
спасибо. имя ячейки выделилось как надо, но если я пишу
Cells(a,b).Name.Name, то при обращении к неименованной страничке возникает ошибка. От нее можно как то избавиться?
0
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
08.09.2010, 17:03  [ТС] 8
у меня в цикле бегает по ячейкам до именованной и по ней выход из цикла хотелось бы сделать
0
1123 / 234 / 37
Регистрация: 15.03.2010
Сообщений: 714
08.09.2010, 17:29 9
Тогда наверное нужно по другому, может быть так:
MyName = 'Твое имя ячейки'
For Each r In Range('a1:a10')
If Not Intersect(Range('MyName'), r) Is Nothing Then Exit For
Next
0
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
09.09.2010, 10:11  [ТС] 10
Он ругается на это. Говорит 1004 ошибка.
Method 'Range' of object '_Global' failed
0
1123 / 234 / 37
Регистрация: 15.03.2010
Сообщений: 714
09.09.2010, 13:02 11
If Not Intersect(Range('MyName'), r) Is Nothing Then Exit For
Виноват, нужно убрать кавычки.
If Not Intersect(Range(MyName), r) Is Nothing Then Exit For
0
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
09.09.2010, 13:14  [ТС] 12
Спасибо, все классно заработало)))
А там же можно сделать, чтобы когда цикл доходил до именованной ячейки я узнал ее адрес?
0
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
09.09.2010, 13:20  [ТС] 13
я поставил внутри цикла счетчик. может это и кривовато, но ее адрес я таким образом получил
0
1123 / 234 / 37
Регистрация: 15.03.2010
Сообщений: 714
09.09.2010, 15:47 14
Адрес именованной ячейки получить легко
Msgbox Range(MyName).address
В цикле это делать не нужно, лишние затраты времени.
Еще Range(MyName) лучше тоже вынести за цикл, написать
Set R1=Range(MyName) и дальше подставить его в цикл.
Удачи
0
0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
12.09.2010, 12:37  [ТС] 15
Спасибо))) Класс!!!
Как многого я еще не знаю((
0
12.09.2010, 12:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.09.2010, 12:37
Помогаю со студенческими работами здесь

Как из екселя считать данные
Понимаю, что может не сюда обращаться следует, но вдруг кто сталкивался, очень срочно надо. Из...

Как из Васика помещая данные на лист Екселя можно изменить цвет ячейки?
Доброе время суток всем! Вопрос такой - как из Васика помещая данные на лист Екселя можно изменить...

Оцените сборку пожалуйста. Нужно в основном считать считать и считать
Процессор Intel I7 8700K Вентилятор THERMALRIGHT MACHO DIRECT Материнская плата ASRock Z370 Pro...

Ввести массив строк фамилию, имя и отчество. Нужно определить, какое имя является родным
Ввести массив строк, в каждой из которых через символ пропуска заданные фамилия, имя и отчество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru