Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Некорректное отображение листа после формирования - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Некорректное отображение листа после формирования
ellison_shiny Дата: Среда, 18.12.2024, 12:01 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Доброе время суток!

Столкнулся с такой проблемой. Формирую макросом лист с настройками вида и разметки. После этого он отображается некорректно (область печати уезжает на другую страницу). Если этот файл сохранить, а потом открыть, то всё отображается нормально. Плюс к этому у одних людей на их машинах лист сразу корректно отображается после формирования, а другим приходится сохранять и переоткрывать файл.
Помогите, пожалуйста, решить эту проблему.

[vba]
Код
Sub Form()

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    'удаляем лист "Лист1", если он присутствует
    On Error Resume Next
    Workbooks("Книга1.xlsm").Sheets("Лист1").Delete
    On Error GoTo 0

    'добавляем лист "Лист1"
    Workbooks("Книга1.xlsm").Activate
    ActiveWorkbook.Sheets.Add.Name = "Лист1"
    Workbooks("Книга1.xlsm").Sheets("Лист1").Move After:=Sheets(Sheets.Count)

    'настраиваем лист (вид и разметка)
    Workbooks("Книга1.xlsm").Activate
    ActiveWindow.View = xlPageLayoutView
    With ActiveSheet.PageSetup
    .Zoom = 68.5
    .FitToPagesWide = 1
    .FitToPagesTall = False
    .LeftMargin = Application.InchesToPoints(0.236220472440945)
    .RightMargin = Application.InchesToPoints(0.118110236220472)
    .TopMargin = Application.InchesToPoints(0.94488188976378)
    .BottomMargin = Application.InchesToPoints(0.748031496062992)
    .HeaderMargin = Application.InchesToPoints(0.31496062992126)
    .FooterMargin = Application.InchesToPoints(0.31496062992126)
    .PrintQuality = 600
    .PrintArea = "A1:H54"
    .CenterHorizontally = True
    .CenterVertically = True
    .AlignMarginsHeaderFooter = False
    End With
    
    With ActiveSheet
    .Cells.Font.Size = "10"
    .Cells.Font.Name = "Arial"
    .Cells.HorizontalAlignment = xlCenter
    .Cells.VerticalAlignment = xlCenter
    .Cells.WrapText = True
    .Cells.EntireRow.AutoFit
    .Range("A1").ColumnWidth = 23.07
    .Range("B1").ColumnWidth = 19.79
    .Range("C1").ColumnWidth = 12.71
    .Range("D1:E1").ColumnWidth = 12.43
    .Range("F1").ColumnWidth = 11.71
    .Range("G1").ColumnWidth = 12.86
    .Range("H1").ColumnWidth = 17.43
    End With
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    
End Sub
[/vba]
К сообщению приложен файл: kniga1.xlsm (41.3 Kb) · 2072718.png (115.4 Kb) · 0606763.png (150.2 Kb)


Сообщение отредактировал ellison_shiny - Среда, 18.12.2024, 12:03
 
Ответить
СообщениеДоброе время суток!

Столкнулся с такой проблемой. Формирую макросом лист с настройками вида и разметки. После этого он отображается некорректно (область печати уезжает на другую страницу). Если этот файл сохранить, а потом открыть, то всё отображается нормально. Плюс к этому у одних людей на их машинах лист сразу корректно отображается после формирования, а другим приходится сохранять и переоткрывать файл.
Помогите, пожалуйста, решить эту проблему.

[vba]
Код
Sub Form()

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    'удаляем лист "Лист1", если он присутствует
    On Error Resume Next
    Workbooks("Книга1.xlsm").Sheets("Лист1").Delete
    On Error GoTo 0

    'добавляем лист "Лист1"
    Workbooks("Книга1.xlsm").Activate
    ActiveWorkbook.Sheets.Add.Name = "Лист1"
    Workbooks("Книга1.xlsm").Sheets("Лист1").Move After:=Sheets(Sheets.Count)

    'настраиваем лист (вид и разметка)
    Workbooks("Книга1.xlsm").Activate
    ActiveWindow.View = xlPageLayoutView
    With ActiveSheet.PageSetup
    .Zoom = 68.5
    .FitToPagesWide = 1
    .FitToPagesTall = False
    .LeftMargin = Application.InchesToPoints(0.236220472440945)
    .RightMargin = Application.InchesToPoints(0.118110236220472)
    .TopMargin = Application.InchesToPoints(0.94488188976378)
    .BottomMargin = Application.InchesToPoints(0.748031496062992)
    .HeaderMargin = Application.InchesToPoints(0.31496062992126)
    .FooterMargin = Application.InchesToPoints(0.31496062992126)
    .PrintQuality = 600
    .PrintArea = "A1:H54"
    .CenterHorizontally = True
    .CenterVertically = True
    .AlignMarginsHeaderFooter = False
    End With
    
    With ActiveSheet
    .Cells.Font.Size = "10"
    .Cells.Font.Name = "Arial"
    .Cells.HorizontalAlignment = xlCenter
    .Cells.VerticalAlignment = xlCenter
    .Cells.WrapText = True
    .Cells.EntireRow.AutoFit
    .Range("A1").ColumnWidth = 23.07
    .Range("B1").ColumnWidth = 19.79
    .Range("C1").ColumnWidth = 12.71
    .Range("D1:E1").ColumnWidth = 12.43
    .Range("F1").ColumnWidth = 11.71
    .Range("G1").ColumnWidth = 12.86
    .Range("H1").ColumnWidth = 17.43
    End With
    
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    
End Sub
[/vba]

Автор - ellison_shiny
Дата добавления - 18.12.2024 в 12:01
mgt Дата: Пятница, 20.12.2024, 00:04 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 103
Репутация: 26 ±
Замечаний: 0% ±

Excel 2010
Если убрать обработчик исключений, будут ли появляться ошибки?
 
Ответить
СообщениеЕсли убрать обработчик исключений, будут ли появляться ошибки?

Автор - mgt
Дата добавления - 20.12.2024 в 00:04
ellison_shiny Дата: Пятница, 20.12.2024, 09:17 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

mgt, да, если "Лист1" будет отсутствовать, будет ошибка. Но область печати всё равно уезжает, причем как-то через раз.
Могу попробовать обработчик ошибок заменить на функцию проверки существования листа, но чувствую дело не в этом..
P.S. Добавил функцию. Вроде работает корректно, потестируем побольше.
К сообщению приложен файл: kniga2.xlsm (46.4 Kb)


Сообщение отредактировал ellison_shiny - Пятница, 20.12.2024, 09:32
 
Ответить
Сообщениеmgt, да, если "Лист1" будет отсутствовать, будет ошибка. Но область печати всё равно уезжает, причем как-то через раз.
Могу попробовать обработчик ошибок заменить на функцию проверки существования листа, но чувствую дело не в этом..
P.S. Добавил функцию. Вроде работает корректно, потестируем побольше.

Автор - ellison_shiny
Дата добавления - 20.12.2024 в 09:17
ellison_shiny Дата: Пятница, 20.12.2024, 14:51 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 19
Репутация: 0 ±
Замечаний: 0% ±

Цитата ellison_shiny, 20.12.2024 в 09:17, в сообщении № 3 ()
P.S. Добавил функцию.
К сообщению приложен файл: kniga2.xlsm (46.4 Kb)

mgt, Не, фокус не удался. С функцией проверки существования листа также периодически уезжает область печати и лист отображается некорректно. Видимо дело в чем-то другом.


Сообщение отредактировал ellison_shiny - Пятница, 20.12.2024, 14:53
 
Ответить
Сообщение
Цитата ellison_shiny, 20.12.2024 в 09:17, в сообщении № 3 ()
P.S. Добавил функцию.
К сообщению приложен файл: kniga2.xlsm (46.4 Kb)

mgt, Не, фокус не удался. С функцией проверки существования листа также периодически уезжает область печати и лист отображается некорректно. Видимо дело в чем-то другом.

Автор - ellison_shiny
Дата добавления - 20.12.2024 в 14:51
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!