Страницы: 1
RSS
Вопросы по редактору макроса, Вопросы по редактору макроса
 
Доброго времени суток уважаемые знатоки!
Меня интересует два вопроса, помогите пожалуйста.
1. В редакторе макроса вместо, вертикальной строки, появилось выделение в виде черного квадрата. Подскажите как вернуть выделение строкой.
2. При переносе макроса на следующую строку (_,Ent) почему-то переносит часть кода с ошибкой. Возможно влияет раскладка клавиатуры или ещё какая та причина, о которой я не догадываюсь. Прочитал в инете об этом вопросе, но решить проблему не сумел. Офис 365 лицензия.
Спасибо!
 
1. Нажать клавишу Insert
2. Правильный синтаксис переноса - пробел+подчеркивание в конце строки
 
sirius0211, здравствуйте
    Это ж какая у вас строка КОДА, что переностить пришлось?
    Ни разу не приходилось — только длинные тексты для  MsgBox разбивать на "" & _ [ENTER] ""
Изменено: Jack Famous - 18.08.2023 09:39:15
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, ))) Я конечно же далеко не знаток в VBA, и поэтому не всегда могу решить задачу исключительно его инструментами, благо что есть функция макрорекордера при помощи которой можно завернуть многоэтажную структуру формулы в код VBA и потом дать значениям статику, чтоб не тормозила таблица с большим количеством строк. Но я потихонку осваиваю VBA, сейчас циклами занимаюсь и вроде успешно.)
За ответы всем спасибо!  
 
webley, Спасибо за ответ!) Приму к сведению.
 
Цитата
sirius0211: далеко не знаток в VBA … благо что есть функция макрорекордера
гораздо правильнее было бы описать задачу и приложить код. Авось, что-то гораздо более удобное/короткое/быстрое сочинили бы общими усилиями…
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Абсолютно согласен! Я так же ценю ваше время, и не хочется лишний раз обращаться. Стараюсь находить решения в интернете, анализировать всевозможные варианты ранее предложенные на этом ресурсе и адаптировать их под свои задачи. Спасибо Вам, что откликаетесь и помогаете шаг за шагом осваивать необъятные возможности VBA.)
 
Заметил одну особенность переноса макроса на другую строку.
Если переносишь код, который в себе несёт собственные процедуры, то переносится без проблем.
Если же код всего лишь прописывает некую формулу в ячейку или массив, то этот код переносится с ошибкой. Видимо сам код формулы представляет собой одну неразрывную  процедуру, нежели "чистый" код VBA, который состоит из множества мелких процедур сливающихся в одну задачу. Могу ошибаться.)
 
Цитата
sirius0211 написал:
Заметил одну особенность переноса макроса на другую строку.
в vba есть особенность, что для переноса кода на другую строку нужна нижняя черта с пробелом перед ней " _".  В vbs, например, пробел не обязателен. Из вашего описания не очень понял о чем речь.
 
Цитата
sirius0211 написал:
Если же код всего лишь прописывает некую формулу в ячейку или массив, то этот код переносится с ошибкой
Нельзя, например, разрывать описанным выше механизмом строковые литералы (текст, заключенный в двойные кавычки).
Владимир
 
sokol92, Понял. Спасибо за ответ.)
 
Попробовал множество способов, оказывается можно.) Достаточно перед переносом заключить фразу в кавычки, поставить знак амперсанд и после переноса открыть их.
Как пример:
Код
Range("C22") = "=MIN(TABLPAYM" & _
"[Time])"
Изменено: sirius0211 - 11.12.2023 09:42:53
 
sirius0211
Цитата
Попробовал множество способов, оказывается можно
Только теперь у вас 2 строковые переменные, которые вы сцепляете через &. Sokol92 говорил об одной строковой переменной.
 
Евгений Смирнов, Да, но только Sokol92 не предложил решение и не говорил что можно было разрывать строковый литерал сцепив их амперсандом при этом эти же разделённые литералы закрыв скобками. Возможно эти вещи окажутся банальными для профессионалов, но если бы я был профессионалом, то и не обращался за помощью.
Страницы: 1
Наверх