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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2009, 10:26   #11
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Как обычно. Сразу после объявления присвоить нужное значение. К сожалению, конструкция
Код:
Dim a = 5 as Integer
в VBA не проходит.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 28.02.2009, 10:38   #12
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Как обычно. Сразу после объявления присвоить нужное значение.
Конструкция такого вида, когда переменные объявляются внутри модуля, а не макроса, приводит к ошибке на команде Set: "Invalid outside procedure"

Код:
Public Уч_Метод_в As Integer
Public Уч_Метод_см As Integer
Set Уч_Метод_в = 5
Set Уч_Метод_см = 6
Sub tab1()
{...}
End Sub
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 28.02.2009, 10:50   #13
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Правильно, нельзя задать переменной значение на уровне модуля. Можно для этой цели использовать константу, а потом в процедуре нужной переменной присваивать начальное значение из этой константы.
Код:
Const FirstConst = 5
Const SecondConst = 6
Sub jkjk()
  Dim a As Integer, b As Integer
  a = FirstConst: b = SecondConst
  MsgBox "a=" & a & ChrW(9) & "b=" & b
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 28.02.2009, 10:56   #14
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Правильно, нельзя задать переменной значение на уровне модуля. Можно для этой цели использовать константу.
Спасибо, это то что нужно. :) Как раз именно константы в большей степени и нужны.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 28.02.2009, 11:04   #15
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Вот что значит не верно поставленный вопрос. Сразу бы объяснил, что тебе нужны именованые значения, которые можно везде использовать, а так, наплодили сообщений…
Кстати, константа тоже может быть Public или Private
Лучше день потерять — потом за пять минут долететь!©

Последний раз редактировалось viter.alex; 28.02.2009 в 11:10.
viter.alex вне форума Ответить с цитированием
Старый 28.02.2009, 11:12   #16
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от viter.alex Посмотреть сообщение
Вот что значит не верно поставленный вопрос. Сразу бы объяснил, что тебе нужны именованые значения, которые можно везде использовать,
В первом письме по сабжу вроде писал, да и не в курсе я был какие возможности предоставляет для этих целей VBA.
Цитата:
Сообщение от viter.alex Посмотреть сообщение
а так, наплодили сообщений…
Флейм тоже полезен. :))
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 20.11.2013, 08:41   #17
SaLoKiN
Форумчанин
 
Аватар для SaLoKiN
 
Регистрация: 19.09.2013
Сообщений: 597
По умолчанию

АПну тему, дабы новую не создавать...
возможно ли создание глобального(в пределах модуля) массива?
массив а загружается в SUB, а хочется использовать его в функциях, без передачи параметров. такое возможно?

Код:
Sub ЗатратыСвой()
Dim Reys As Integer
Dim Razmer As Integer

With Sheets("отчет")
    iLastRow = .Range("A" & .Rows.Count).End(xlUp).Row 
    a = .Range(.Cells(4, 1), .Cells(iLastRow, 32)) 
End With
UPD
решено!
достаточно Dim a перед всеми процедурами,а потом в SUB просто загрузить как было и все!
Сделал сам, помоги другому!
Что-то работает не так? Дебаггер в помощь!!!

Последний раз редактировалось SaLoKiN; 20.11.2013 в 11:22.
SaLoKiN вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменные скрипта wall66 PHP 7 12.12.2008 17:14
Переменные REAL Terabit Паскаль, Turbo Pascal, PascalABC.NET 9 03.11.2008 21:26
Глобальные хуки Zeraim Win Api 2 24.05.2008 16:00
Переменные из БД Кронос БД в Delphi 2 06.06.2007 11:26