Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ
Цитата: Дмитрий Щербаков(The_Prist) от 10.03.2026, 14:50:59Вероятно, где-то в коде стоит директива пропуска ошибок On Error Resume next. И строка, которую я в цитате выделил пропускается.В программе такой директивы (пропуска ошибки) нет. А за ссылку - спасибо!
Цитата: 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 не знает такой константы.myDocument.SaveAs2 (mypath & "\" & "Паспорт " & "Опоры.docx")
Documents("Паспорт " & "Опоры.docx").Close SaveChanges:=wdSaveChangesЦитата: RuSoldatSe от 07.01.2026, 17:10:46Т.е. после выполнения этой команды, получается уже можно использовать добавление новой строки (.AddItem) и как обычно работать со номерами столбцов > 10?Попробовать самостоятельно не получается? Нужно какое-то отдельное подтверждение?
Если честно - думал, что специально проставленный комментарий вполне красноречиво описывает эту возможность
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