Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Office Новый топик    Ответить
 Непонятный синтаксис в Excel VBA  [new]
ПГС
Member

Откуда:
Сообщений: 89
Добрый день, коллеги.
Мне досталось переносить старый VBA модуль в новую систему.
И он даже работал в старой, но в новой получаю ошибку компиляции не могу найти описания такого синтаксиса:
Dim l_var1 as string
Dim l_var2 as string

' далее какие-то манипуляции со строками
l_var2 = SPLIT(RANGE("A10").OFFSET(0,I).ADDRESS,"$") (1)
' .....
' ниже получаю ошибку в такой строке

l_var1(1) = l_var2 ' <-----здесь ошибка

Range(l_var1,l_var2).Select


Т.е. эти строки будут использоваться для адресации Range.
Описание такого синтаксиса я нигде не нашёл
l_var1(1) = l_var2

В ABAP это было бы присвоение первому символу переменной l_var1 значением из l_var2
Но это не ABAP ;)

Сообщение было отредактировано: 27 янв 21, 17:48
27 янв 21, 17:47    [22270300]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный синтаксис в Excel VBA  [new]
ПГС
Member

Откуда:
Сообщений: 89
Ошибся в корректуре

Сообщение было отредактировано: 27 янв 21, 17:49
27 янв 21, 17:54    [22270303]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный синтаксис в Excel VBA  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 22390
ПГС
l_var1(1) = l_var2
Это присвоение элементу массива. Но l_var1 - это не массив, он объявлен как string, отсюда и ошибка
27 янв 21, 18:50    [22270357]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный синтаксис в Excel VBA  [new]
ПГС
Member

Откуда:
Сообщений: 89
Разобрался
Ситуация была такая:
  • Был работающий скомпилированный код
  • Кто-то внёс в невызываемую функцию ошибку и не скомпилировал модуль
  • Модуль продолжал работать используя скомпилированный код
  • Когда я понёс этот модуль в другую систему скомпилировать не удалось

Пришлось разбираться в коде и копать что к чему.
После того как удалил невызываемую функцию, компиляция прошла успешно.
27 янв 21, 19:24    [22270369]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный синтаксис в Excel VBA  [new]
big-duke
Member

Откуда:
Сообщений: 6801
ПГС


' далее какие-то манипуляции со строками
l_var2 = SPLIT(RANGE("A10").OFFSET(0,I).ADDRESS,"$") (1)

Акуеть , через какое место определяется номер строки и столбца :D

TC,
замените
Dim l_var1 as string

на
Dim l_var1 as Variant
28 янв 21, 09:02    [22270567]     Ответить | Цитировать Сообщить модератору
 Re: Непонятный синтаксис в Excel VBA  [new]
ПГС
Member

Откуда:
Сообщений: 89
big-duke,

Я весь этот код похерил.
Там была "помойка" в одной портянке (одном методе). Суммировались подитоги, определение группы. Объединение группы ячеек в "Merge_cell" и т.д. Да и еще весь лист обрабатывался в единственном методе.Ненавижу многофункциональные портянки.

Разделил задачу на части, т.е. переделал. Отдельный метод - итоги. Отдельный метод определение группы. Отдельный метод "Merge_cell". Причём вызываю эти методы отдельно по каждой колонке....
Не знаю VBA, но структурировать и делить задачу на части умею.

Проблему закрыл. Моя беда был в том, что у меня нет "налёта часов" в VBA.
28 янв 21, 20:28    [22270871]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Office Ответить