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

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

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

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

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

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

Подскажите, можно ли столбцу в коде VBA присвоить имя, которое будет заменять ему его букуву при обращении?

Например, чтобы столбец "A" стал столбцом "January". Тогда Cells(1,"A") будет то же самое, что и Cells(1,"January")
Neo007 вне форума
Старый 21.01.2009, 15:56   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Если имя нужно только в коде, и при работе пользователя оно себя никак не проявляет, то обычным присваиванием переменной
Код:
  Dim January As Range
  Set January = Worksheets(1).Columns(1)
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 21.01.2009 в 16:01.
viter.alex вне форума
Старый 21.01.2009, 16:14   #3
Neo007
Пользователь
 
Регистрация: 09.09.2008
Сообщений: 43
По умолчанию

Да, я так пробовал, но дело в том, что само значение January я нахожу с помощью переменной, которая заключает имя в кавычки:
например:
i=лист1.cells(1,1), откуда i="january".
затем, когда я пишу лист2.cells(1,i) - возникает ошибка, т.к. i - содержит имя в кавычках.
Как избежать этой ошибки?
Neo007 вне форума
Старый 21.01.2009, 16:24   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Цитата:
Сообщение от Neo007 Посмотреть сообщение
Да, я так пробовал, но дело в том, что само значение January я нахожу с помощью переменной, которая заключает имя в кавычки:
например:
i=лист1.cells(1,1), откуда i="january".
затем, когда я пишу лист2.cells(1,i) - возникает ошибка, т.к. i - содержит имя в кавычках.
Как избежать этой ошибки?
Нужно следить за типами переменных и, желательно, объявлять их.
Как объявлена i? Скорее всего никак. Ты ей присваиваешь строковое значение "january". И что ты хочешь от строки?
Чтобы присвоить переменной, имя ячейки, то это имя нужно заключить в квадратные скобки
Код:
i=[january]
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 21.01.2009, 16:42   #5
Neo007
Пользователь
 
Регистрация: 09.09.2008
Сообщений: 43
По умолчанию

Я пишу так
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
Neo007 вне форума
Старый 21.01.2009, 16:53   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

попробу так. Ты на место номера столбца ставишь ячейку, а нужно из этой ячейки взять номер ее столбца. Сейчас гуру подойдут, может еще толковее посоветуют
Код:
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.column).Select 'выдает ошибку Type mismatch
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума
Старый 21.01.2009, 17:09   #7
Neo007
Пользователь
 
Регистрация: 09.09.2008
Сообщений: 43
По умолчанию

Нет, Саш, если я возьму i.column, то у меня будет столбец L, а это мне не нужно, т.к. листы "Invoiced" и "Details" никак между собой не связаны.
Я делаю следующее: в ячейке Cells(2,"L") у меня содержится название определенного месяца. Это название я присваиваю переменной i (т.к. i у меня равен "january"). А на другом листе мне нужно найти столбец, который я определил, как january = Worksheets("Invoiced").Columns(7)
Все бы работало, если бы i = january, а в моем случае i = "january".
Короче кавычки все портят((( Как это исправить? Может есть другой способ?)
Neo007 вне форума
Старый 21.01.2009, 18:12   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Цитата:
А на другом листе мне нужно найти столбец, который я определил, как january = Worksheets("Invoiced").Columns(7)
А что его искать, если двумя строками выше вы знали, что это 7-й столбец!
Set January = Worksheets("Invoiced").Columns(7)
Set i = Worksheets("Details").Cells(2, "L") 'в этой ячейке содержится значение месяца (January)
Worksheets("Invoiced").Cells(10, 7).Select
только для чего здесь обе строчки с Set - не понимаю.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 22.01.2009, 09:46   #9
Neo007
Пользователь
 
Регистрация: 09.09.2008
Сообщений: 43
По умолчанию

Igor Go, это я сейчас знаю что у меня 7 столбец - это Январь. А таких столбцов у меня 12. И в зависимости от того какое значение содержит столбец L на листе Details, я и хочу, чтобы в будущем построенный мною цикл, автоматически находил именной столбец.
Neo007 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присвоить файлу имя в виде DateTime Shouldercannon Общие вопросы Delphi 6 17.12.2008 12:55
Как присвоить ячейке имя? Maxx Microsoft Office Excel 2 01.11.2008 11:30
Как присвоить имя автофигуре? Град Microsoft Office Excel 6 17.10.2008 17:16
Как средствами VBA получить доменное имя пользователя? Прохожий Microsoft Office Excel 3 04.10.2008 18:28
Вставка - Имя - Присвоить - ограничения? Konstantin_Z Microsoft Office Excel 8 27.08.2008 16:37