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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2014, 22:27   #11
fun_kok
Пользователь
 
Регистрация: 19.02.2014
Сообщений: 15
По умолчанию

Как правильно расставить ", а то не работает, в чем ошибка???
Sheets("Группа " & t).Range("G" & (t + 2)).FormulaLocal = "=СУММПРОИЗВ((Календарь " & t & "!C4:Календарь " & t & "!C9=B" & (t + 2) & ")*Календарь " & t & "!K4:Календарь " & t & "!K9) - СУММПРОИЗВ((Календарь " & t & "!D4:Календарь " & t & "!D9=B" & (t + 2) & ")*Календарь " & t & "!K4:Календарь " & t & "!K9)"
fun_kok вне форума Ответить с цитированием
Старый 13.03.2014, 12:00   #12
fun_kok
Пользователь
 
Регистрация: 19.02.2014
Сообщений: 15
По умолчанию

Почему не работает данная макрофункция "ar_3_1 = Array(1, 2, 3)" если я помещаю ее в начале модуля. Если она находится в процедуре то все работает.
Выдает: Compile error: Invalid outside procedure.
fun_kok вне форума Ответить с цитированием
Старый 13.03.2014, 12:06   #13
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

потому что не включена в тело какой-либо процедуры.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.03.2014, 14:17   #14
fun_kok
Пользователь
 
Регистрация: 19.02.2014
Сообщений: 15
По умолчанию

А как мне тогда сделать глобальный массив констант, чтоб к нему был доступ из любой процедуры или функции текщего модуля???
fun_kok вне форума Ответить с цитированием
Старый 13.03.2014, 15:35   #15
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

В Excel константы удобно записать на лист, потом скрыть его. В sub auto_open() прописать считывание с листа в глобальный массив или переменные.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.03.2014, 15:42   #16
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Чисто средствами VBA например так
Код:
Const AR_3_1_DATA = "1 2 3"

Dim ar_3_1() As Double

Sub auto_open()
Dim x$(), i&
x = Split(AR_3_1_DATA)
ReDim ar_3_1(0 To UBound(x))
For i = 0 To UBound(x)
  ar_3_1(i) = CDbl(x(i))
Next
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.03.2014, 15:47   #17
fun_kok
Пользователь
 
Регистрация: 19.02.2014
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Чисто средствами VBA например так
Код:
Const AR_3_1_DATA = "1 2 3"

Dim ar_3_1() As Double

Sub auto_open()
Dim x$(), i&
x = Split(AR_3_1_DATA)
ReDim ar_3_1(0 To UBound(x))
For i = 0 To UBound(x)
  ar_3_1(i) = CDbl(x(i))
Next
End Sub
т.е. как на СИ "a() = {1,2,3,4}" в VBA сделать не получится???? (по-простому)
fun_kok вне форума Ответить с цитированием
Старый 13.03.2014, 15:57   #18
fun_kok
Пользователь
 
Регистрация: 19.02.2014
Сообщений: 15
По умолчанию

Код:
Public ar_3_1() as integer
.....
i = Sheets("Константы").Cells(1, Columns.Count).End(xlToLeft).Column
redim ar_3_1(1 to i)
ar_3_1() = Sheets("Константы").Range(a1:"a"&i).Value
Так будет работать???
fun_kok вне форума Ответить с цитированием
Старый 13.03.2014, 16:17   #19
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от fun_kok Посмотреть сообщение
т.е. как на СИ "a() = {1,2,3,4}" в VBA сделать не получится???? (по-простому)
Не получится.
В VBA Excel можно написать
Код:
Dim a()
a() = [{1,2,3,4}]
, но опять же только в процедуре. Массив будет типа Variant и 1-Based.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.03.2014, 16:25   #20
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от fun_kok Посмотреть сообщение
Так будет работать???
Спросите у своего VBA
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание листа с определенным именем. bud-dy Microsoft Office Excel 10 28.01.2011 13:57
Процедура с изменяемым параметром Utkin Общие вопросы Delphi 11 30.11.2010 14:41
Формула для переноса значения с одного листа на другой Олег197709 Microsoft Office Excel 12 12.07.2010 10:52
Формула, возвращающая название листа в ячейку _Nina_ Microsoft Office Excel 6 24.08.2009 18:22
Какая формула возвращает имя текущего листа? ru3000 Microsoft Office Excel 3 16.07.2009 22:39