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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.09.2016, 15:30   #1
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию Переменная содержащая область ячеек

Необходимо написать пользовательскую функцию, которая будет работать с выделенной областью ячеек.
Как объявить переменную, которая будет содержать эту область?
С VBA знаком второй день, работал с другими языками.
Replicant вне форума Ответить с цитированием
Старый 12.09.2016, 15:40   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

в VBA уже есть такая переменная Selection
отметьте диапазон ячеек, выполните этот
Код:
sub seladr
  msgbox selection.sddress false, false
end sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 12.09.2016, 15:45   #3
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
в VBA уже есть такая переменная Selection
отметьте диапазон ячеек, выполните этот
Код:
sub seladr
  msgbox selection.sddress false, false
end sub
Compile error: Syntax error в строке msgbox selection.sddress false, false
msgbox selection.saddress false, false и msgbox selection.address false, false та же фигня
Replicant вне форума Ответить с цитированием
Старый 12.09.2016, 15:51   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

с компилятором не поспоришь
извините,
msgbox selection.address false, false
но Вы, как человек, работавший с другими языками могли бы и...

и еще раз извините
msgbox selection.address(false, false)


давайте теперь не спеша.
1 копируете этот текст
Sub seladr()
MsgBox Selection.Address(False, False)
End Sub
2. на листе отмечаете диапазон ячеек
3. правой кнопкой по ярлыку листа
4. Исходный текст
5. Ctrl+V
6. F5
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 12.09.2016 в 15:57.
IgorGO вне форума Ответить с цитированием
Старый 12.09.2016, 15:54   #5
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
с компилятором не поспоришь
извините,
msgbox selection.address false, false
но Вы, как человек, работавший с другими языками могли бы и...
Ну так пробовал этот вариант, написал же выше) Сам удивляюсь
Изображения
Тип файла: jpg Снимок.JPG (26.2 Кб, 55 просмотров)
Replicant вне форума Ответить с цитированием
Старый 12.09.2016, 15:58   #6
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Так же интересно как привязать к переменной заранее указанную область??
Sellection и перебор циклом в массив?
Replicant вне форума Ответить с цитированием
Старый 12.09.2016, 15:59   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

sub xxxx()
end Sub

это тело процедуры.
надеюсь, Вы его не вставляете в тело ДРУГОЙ процедуры?
если да - то так нельзя!
Все процедуры в VBA описываются отдельно

Цитата:
как привязать к переменной заранее указанную область??
Цитата:
которая будет работать с выделенной областью ячеек.
такая переменная уже есть.
у неё имя selection

просто используйте её, где нужно.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.09.2016, 16:00   #8
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Да напишите просто

Код:
Sub seladr()
  MsgBox Selection.Address 
End Sub
Код:
dim rng as range
rng = selection
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 12.09.2016, 16:01   #9
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Да напишите просто

Код:
Sub seladr()
  MsgBox Selection.Address 
End Sub
Код:
dim rng as range
rng = selection
Да, спасибо.
Replicant вне форума Ответить с цитированием
Старый 12.09.2016, 16:03   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
sub FillRangeB3D7
  dim rg as range
  set rg = range("B3:D7")
  rg.interior.color = rgb(255,0,0)
  rg.value = 22
end sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не работает DLL - функция, содержащая CDialog? Dmitry_B Visual C++ 0 20.01.2013 10:58
Дана строка символов, содержащая слова. Определить количество слов, последний и предпоследний символы кот RamZax Паскаль, Turbo Pascal, PascalABC.NET 2 17.06.2010 14:06
Копирование сотен ячеек с формулами в другую область Tidus Microsoft Office Excel 4 08.02.2010 22:08
Структура, содержащая массивы и матрицу данных - проблема с записью и/или выводом flexin Общие вопросы C/C++ 6 09.01.2010 19:42
dll содержащая функции выполнения sql запросов jb_007 Помощь студентам 10 13.05.2009 13:39