Страницы: 1
RSS
Сбрасываются параметры страницы в формате .xls (MS Excel 2007)
 
Работаю в сметной программе РИК, у неё есть шаблон вывода в формат .xls, в котором задаются параметры страницы. Не всегда данное решение гибко, и до нужного вида файл доводится руками, средствами MS Excel. Проблема в том, что параметры страницы не сохраняются после изменения в excel, и после повторного открытия всё сбрасывается на параметры заданные в РИК. Нашёл один выход, после задания нужных параметров, пересохраняю файл в формат .xlsx, но это ещё один лишний шаг в длинной цепочке, хотелось бы его исключить. Файл прилагаю.
Изменено: abricos29 - 02.02.2018 05:55:55
 
abricos29, Откройте файл, нажмите Alt + F11 и удалите модуль с макросами или только первый макрос Sub Auto_Open() ( именно он отвечает за параметры страницы ) и сохраните.
Изменено: Александр П. - 02.02.2018 07:03:23
 
Александр П., Огромное спасибо!  
 
Собрал такой макрос, может кому пригодится, блок удаления взят с сайта участника The Prist Код удаления модулей. В моем случае все вспомогательные данные для макроса располагаются на нескольких листах начиная со второго, удаление которых реализовано в макросе, предварительно рвем связи с удаляемыми листами.
Код
Sub Delete_Macroses()

'________________________________разрыв связей на каждом листе___________________________

Dim wsSh As Worksheet
For Each wsSh In Sheets
wsSh.UsedRange.Value = wsSh.UsedRange.Value
Next wsSh

'____________________________Удаление всех листов начиная со второго_____________________
On Error Resume Next ' пропустить все ошибки
Do While 1: Sheets(2).Delete: Loop


'____________________________Блок удаления всех модулей с макросами______________________

    Dim oVBComponent As Object, lCountLines As Long
    'Проверяем, защищен проект или нет
    If ActiveWorkbook.VBProject.Protection = 1 Then
        MsgBox "VBProject выбранной книги защищён." & vbCrLf & _
             "     Компоненты не будут удалены.", vbExclamation, "Отмена выполнения"
        Exit Sub
    End If
 
    For Each oVBComponent In ActiveWorkbook.VBProject.VBComponents
        On Error Resume Next
        With oVBComponent
            Select Case .Type
            Case 1    'Модули
                .Collection.Remove oVBComponent
            Case 2    'Модули Класса
                .Collection.Remove oVBComponent
            Case 3    'Формы
                .Collection.Remove oVBComponent
            Case 100    'ЭтаКнига, Листы
                    lCountLines = .CodeModule.CountOfLines
                    .CodeModule.DeleteLines 1, lCountLines
            End Select
        End With
    Next
    Set oVBComponent = Nothing
'________________________________________________________________________________________

        MsgBox "Готово!", vbOKOnly, "Очиститель модулей"
    
End Sub
Страницы: 1
Читают тему
Наверх