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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.01.2009, 18:01   #1
Neo007
Пользователь
 
Регистрация: 09.09.2008
Сообщений: 43
Счастье Как обратиться к ячейке используя присвоенные имена к столбцу или строчке в коде VBA?

Помогите, плиз, обратиться к ячейке, используя вместо букв и цифр столбцов, присвоенные имена (имена будут содержаться в переменной):

Sub Macros()
Dim i, January As Range
Set January = Worksheets("Invoiced").Columns(7)
Set i = Worksheets("Details").Cells(2, "L") 'в этой ячейке содержится значение месяца (January)
Worksheets("Invoiced").Cells(10, i).Select 'выдает ошибку Type mismatch
End Sub

Ошибка потому что переменная i="january", если бы i=january все бы работало. Как можно убрать эти кавычки?
Neo007 вне форума
Старый 21.01.2009, 18:19   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
если бы i=january все бы работало
Sub Macros()
Dim i, January As Range
Set January = Worksheets("Invoiced").Columns(7)
Set i = January
Worksheets("Invoiced").Cells(10, i).Select 'выдает ошибку Type mismatch
End Sub

только работать оно не будет...
а вот так будет:
Sub Macros()
Worksheets("Invoiced").Cells(10, 7).Select
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 21.01.2009, 19:04   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
Сообщение

Я так понял, что ТС хочет брать слова из некоего стобца в одном листе и затем, используя эти слова как имена диапазонов, ими оперировать.
Т.е. есть у него ячейка, в которой есть слово «January». Это должно означать, но к сожалению не означает, что есть на другом листе диапазон с таким именем.
Думаю, что здесь поможет ActiveWorkbook.Names.
Код:
Sub Macros()
  Dim i, January As Range
  Set January = Worksheets("Invoiced").Columns(7)
  Set i = Worksheets("Details").Cells(2, "L") 'в этой ячейке содержится     значение месяца (January)
  Worksheets("Invoiced").Cells(ActiveWorkbook.Names(i).Value).Select 'выдает ошибку Type mismatch
End Sub
Что-то вроде такого. Не проверял
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 22.01.2009, 09:40   #4
Neo007
Пользователь
 
Регистрация: 09.09.2008
Сообщений: 43
По умолчанию

Цитата:
Т.е. есть у него ячейка, в которой есть слово «January». Это должно означать, но к сожалению не означает, что есть на другом листе диапазон с таким именем.
Да, ты прав, только немного поправлю, Это должно означать, но к сожалению не означает, что есть на другом листе не диапазон, а столбец, который я хочу находить с помощью этого слова.
Neo007 вне форума
Старый 22.01.2009, 10:22   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Как то все запутано. Что Вас все-таки интересует?
Пусть, например, на листе есть столбец с именем "January". Если нужно обратиться, например, к ячейке строки 5 этого столбца с помощью переменной, значение которой каким-то образом получено, то можно
Код:
s = "January"
    Cells(5, Range(s).Column).Select
Где s - наша переменная.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 22.01.2009, 11:22   #6
Neo007
Пользователь
 
Регистрация: 09.09.2008
Сообщений: 43
По умолчанию

SAS888 - это то, что мне нужно было! Огромный респект! Все работает!
Neo007 вне форума
Старый 22.01.2009, 12:28   #7
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

или просто:
[January].column
slan вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как присвоить имя столбцу в VBA? Neo007 Microsoft Office Excel 8 22.01.2009 09:46
Как в коде VBA возвратить путь к заранее известному файлу? Maxx Microsoft Office Excel 4 19.11.2008 13:17
Как перейти к определенной строчке в Memo DmT Общие вопросы Delphi 5 08.07.2008 21:50
Как обратиться к ячейке файла Excel не открывая его Alexandro Microsoft Office Excel 3 28.05.2008 12:02
Как обратиться к ячейке таблицы Аналитик Помощь студентам 16 29.11.2007 20:11