Гость
Map
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Непонятный синтаксис в Excel VBA / 6 сообщений из 6, страница 1 из 1
27.01.2021, 17:47
    #40039436
ПГС
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятный синтаксис в Excel VBA
Добрый день, коллеги.
Мне досталось переносить старый VBA модуль в новую систему.
И он даже работал в старой, но в новой получаю ошибку компиляции не могу найти описания такого синтаксиса:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
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 ;)
...
Рейтинг: 0 / 0
27.01.2021, 17:54
    #40039438
ПГС
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятный синтаксис в Excel VBA
Ошибся в корректуре
...
Рейтинг: 0 / 0
27.01.2021, 18:50
    #40039453
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятный синтаксис в Excel VBA
ПГС
l_var1 (1) = l_var2
Это присвоение элементу массива. Но l_var1 - это не массив, он объявлен как string, отсюда и ошибка
...
Рейтинг: 0 / 0
27.01.2021, 19:24
    #40039457
ПГС
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятный синтаксис в Excel VBA
Разобрался
Ситуация была такая:
  • Был работающий скомпилированный код
  • Кто-то внёс в невызываемую функцию ошибку и не скомпилировал модуль
  • Модуль продолжал работать используя скомпилированный код
  • Когда я понёс этот модуль в другую систему скомпилировать не удалось
После того как удалил невызываемую функцию, компиляция прошла успешно.
...
Рейтинг: 0 / 0
28.01.2021, 09:02
    #40039549
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятный синтаксис в Excel VBA
ПГС


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

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

TC,
замените
Код: vbnet
1.
Dim l_var1 as string


на
Код: vbnet
1.
Dim l_var1 as Variant
...
Рейтинг: 0 / 0
28.01.2021, 20:28
    #40039718
ПГС
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Непонятный синтаксис в Excel VBA
big-duke,

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

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

Проблему закрыл. Моя беда был в том, что у меня нет "налёта часов" в VBA.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Непонятный синтаксис в Excel VBA / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]