0 / 0 / 0
Регистрация: 06.06.2010
Сообщений: 88
|
|
1 | |
В VBA Екселя нужно считать имя ячейки08.09.2010, 12:42. Показов 4166. Ответов 14
Метки нет (Все метки)
Господа, подскажите как быть.
в VBA Екселя нужно считать имя ячейки, т.е. она у меня именованная. Как это сделать??? Заранее благодарен.
0
|
08.09.2010, 12:42 | |
Ответы с готовыми решениями:
14
Задать имя ячейки в виде переменной в VBA Возможно ли средствами VBA удалить уже существующее имя ячейки рабочего листа? Изменения формата ячейки Excel средствами VBA в зависимости от значения другой ячейки Нужно чтобы макрос обработал все файлы екселя в определенной папке |
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 | |
12.09.2010, 12:37 | |
Помогаю со студенческими работами здесь
15
Как из екселя считать данные Как из Васика помещая данные на лист Екселя можно изменить цвет ячейки? Оцените сборку пожалуйста. Нужно в основном считать считать и считать Ввести массив строк фамилию, имя и отчество. Нужно определить, какое имя является родным Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |