Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Последние сообщения

#11
Цитата: Дмитрий Щербаков(The_Prist) от 10.03.2026, 14:50:59Вероятно, где-то в коде стоит директива пропуска ошибок On Error Resume next. И строка, которую я в цитате выделил пропускается.
В программе такой директивы (пропуска ошибки) нет. А за ссылку - спасибо!
#12
Добрый день.
Для понимания масштабов проблемы и хоть какой-то оценки - нужны исходные файлы(файл Excel с примером базы данных и файлы шаблоны Счета и Чека).
Если не можете выкладывать сюда - высылайте на почту: info@excel-vba.ru
#13
Цитата: Dmitry_Cheplya от 10.03.2026, 09:39:21Documents("Паспорт " & "Опоры.docx").Close SaveChanges:=wdSaveChanges
Вероятно, где-то в коде стоит директива пропуска ошибок On Error Resume next. И строка, которую я в цитате выделил пропускается. Почему? потому что в Excel нет коллекции Documents. Надо обращаться через переменную, которая была создана при помощи CreateObject("Word.Application"). Или через New Word.Application - не могу сказать, т.к. кода нет. Тоже самое относится к wdSaveChanges - Excel не знает такой константы.
Вот здесь я расписывал эту проблему: Как из Excel обратиться к другому приложению - Главная ошибка новичка
Но я бы рекомендовал всю статью прочитать - не лишним будет.
#14
Добрый день!
Есть следующая задача. В Excel таблица с данными, которые нужно по закладкам вносить в шаблонный Word-файл. Открыть файл и внести в него изменения - благополучно закрытый вопрос, все работает. Даже сохранить файл с новым именем по правильному пути (выбор пути через стандартное диалоговое окно) удалось реализовать, но закрыть отредактированный файл с использованием имени файла в команде на на закрытие не получается.
myDocument.SaveAs2 (mypath & "\" & "Паспорт " & "Опоры.docx")
Documents("Паспорт " & "Опоры.docx").Close SaveChanges:=wdSaveChanges

Код немного упростил код в части имени файла
Не могу понять, почему не закрывает файл с указанным именем
#15
Написать VBA на выставление 2-х документов (счет и чек) по данным из базы данных (массив в эксель) и настройка автоматической рассылки этих документов на e-mail клиентoв из справочника клиентов
#16
Цитата: RuSoldatSe от 07.01.2026, 17:10:46Т.е. после выполнения этой команды, получается уже можно использовать добавление новой строки (.AddItem) и как обычно работать со номерами столбцов > 10?
Попробовать самостоятельно не получается? Нужно какое-то отдельное подтверждение? :) Если честно - думал, что специально проставленный комментарий вполне красноречиво описывает эту возможность  ;)
#17
Вопросы по Excel и VBA / Re: Работа со столбцами ListBo...
Последний ответ от RuSoldatSe - 07.01.2026, 17:10:46
Спасибо, не знал что можно закинуть пустой массив (.List = Arr()) чтоб "открылись" больше 10 столбцов. Т.е. после выполнения этой команды, получается уже можно использовать добавление новой строки (.AddItem) и как обычно работать со номерами столбцов > 10? А то я планировал добавлять "с запасом" пустых строк (ReDim Arr(10, 1 To cols)), а потом пробегаться по ListBox и удалять фактически пустые.
#18
Пример совершенно не информативный, т.к. не к чему хоть что-то привязать и понять, что откуда Вы собираетесь записывать в ListBox. Данных-то вообще нет - пустой лист. По коду тоже нет понимания, что откуда планируется записывать.
Грубо вот как-то так - под пример сами подстраивайте:
  cols = 15               ' кол-во столбцов
  ReDim Arr(0, 1 To cols) ' создаем массив с одной строкой и нужным количеством столбцов
  With ListBox1
    .ColumnCount = cols
    .List = Arr()    ' если назначить в качестве данных даже пустой массив - это позволит дальше работать с кол-вом столбцов > 10
    For r = 2 To 20 'цикл по строкам
      If Cells(r, 1) = "некое условие" Then
        .AddItem Empty
        For c = 1 To cols
          .List(i, c-1) = Cells(r, c).Value
        Next
        i = i + 1
      End If
    Next
    .RemoveItem .ListCount - 1  'Удаляем строку, которая использовалась для трюка с добавлением более 10-ти столбцов
  End With
#19
Вопросы по Excel и VBA / Работа со столбцами ListBox бо...
Последний ответ от RuSoldatSe - 07.01.2026, 14:22:01
Добрый день.
Подскажите пож-та, как можно работать со столбцами ListBox более 10? Знаю что AddItem не позволяет создавать больше 10 столбцов. При этом я работаю с элементами UserForm (использование ячеек на листе не подходит (RowSource)). Можно значения элементов на UserForm загрузить в массив и передать его содержимое через .List. А как быть, если нужно в ListBox добавить несколько строк с разными значениями в 15 столбцах? Можно ли массив передавать в определенную строку, а не во весь ListBox? Пример во вложении. Спасибо за помощь.
#20
ДД. Есть task на добавление функционала в файл с VBA. Добавление аналитики, сравнение и выполнение условий если, то. Сюда файл не проходит
Яндекс.Метрика Рейтинг@Mail.ru