powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Оптимизация кода
9 сообщений из 9, страница 1 из 1
Оптимизация кода
    #34163429
dinogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как оптимизировать следующий код (установка параметров страницы) Excel?

With ActiveSheet.PageSetup
.RightFooter = "Страница &P из &N"
.LeftMargin = Application.InchesToPoints(0.196850393700787)
.RightMargin = Application.InchesToPoints(0.196850393700787)
.TopMargin = Application.InchesToPoints(0.393700787401575)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.31496062992126)
.CenterHorizontally = True
.Orientation = xlLandscape
End With

уж очень долго выполняется!
...
Рейтинг: 0 / 0
Оптимизация кода
    #34163703
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажется, не ускоришь...
...
Рейтинг: 0 / 0
Оптимизация кода
    #34165943
SvIva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, сделал, но на всякий напоминаю - отключить автоматический пересчет формул.
...
Рейтинг: 0 / 0
Оптимизация кода
    #34166009
dinogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так:
Dim Prn As String, a
a = Timer
Prn = "PAGE.SETUP( , ""&RСтраница &P из &N"", 0.19, 0.19, 0.19, 0.19, 0, False, True, False, 2, 9, , 1, 1,False, , 0.19, 0.38, False)"
Application.ExecuteExcel4Macro Prn
MsgBox Timer - a

timer - 0.78

В предыдущем коде timer - 7.01
...
Рейтинг: 0 / 0
Оптимизация кода
    #34166015
dinogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал так:
Dim Prn As String, a
a = Timer
Prn = "PAGE.SETUP( , ""&RСтраница &P из &N"", 0.19, 0.19, 0.19, 0.19, 0, False, True, False, 2, 9, , 1, 1,False, , 0.19, 0.38, False)"
Application.ExecuteExcel4Macro Prn
MsgBox Timer - a

timer - 0.78

В предыдущем коде timer - 7.01
...
Рейтинг: 0 / 0
Оптимизация кода
    #34166047
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dinogenСделал так:
Dim Prn As String, a
a = Timer
Prn = "PAGE.SETUP( , ""&RСтраница &P из &N"", 0.19, 0.19, 0.19, 0.19, 0, False, True, False, 2, 9, , 1, 1,False, , 0.19, 0.38, False)"
Application.ExecuteExcel4Macro Prn
MsgBox Timer - a

timer - 0.78

В предыдущем коде timer - 7.01
Здорово!!!
А если нужно не на активном листе выставить значения?
Как будет выгледить строка Prn?
А может скажешь, где посмотреть возможности ExecuteExcel4Macro ?
...
Рейтинг: 0 / 0
Оптимизация кода
    #34166201
dinogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как на не активном листе выставить значения не знаю. Я только учусь! :)

В справке Microsoft Visual Basic
ExecuteExcel4Macro Method
Runs a Microsoft Excel 4.0 macro function and then returns the result of the function. The return type depends on the function.
expression.ExecuteExcel4Macro(String)

Файл справки по функциям макросов Excel 4.0 т.н. макрофункции Excel 4.0 (макросы XLM)
русский
http://www.microsoft.com/downloads/details.aspx?FamilyID=C09BF7F7-D30E-4CE9-8930-5D03748CA5CD&displaylang=ru
english
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C09BF7F7-D30E-4CE9-8930-5D03748CA5CD

Для данного примера информацию почерпнул на http://www.p2preactor.com/usenet/programming/1527203-macro-change-worksheet-page.html
...
Рейтинг: 0 / 0
Оптимизация кода
    #34167216
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dinogenКак на не активном листе выставить значения не знаю. Я только учусь! :)

В справке Microsoft Visual Basic
ExecuteExcel4Macro Method
Runs a Microsoft Excel 4.0 macro function and then returns the result of the function. The return type depends on the function.
expression.ExecuteExcel4Macro(String)

Файл справки по функциям макросов Excel 4.0 т.н. макрофункции Excel 4.0 (макросы XLM)
русский
http://www.microsoft.com/downloads/details.aspx?FamilyID=C09BF7F7-D30E-4CE9-8930-5D03748CA5CD&displaylang=ru
english
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C09BF7F7-D30E-4CE9-8930-5D03748CA5CD

Для данного примера информацию почерпнул на http://www.p2preactor.com/usenet/programming/1527203-macro-change-worksheet-page.html
Спасибо.
...
Рейтинг: 0 / 0
Оптимизация кода
    #34180356
Сергей-1977
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подобная хрень требовалась мне (буквально на днях!!!!). Тоже ПОНИМАШЬ оптимизирую программу, шоб работала ешо быстрее.
Мне надо было в одной книге создавать кучу листов (в зависимости от параметра N передаваемого в процедуру). Может Вы знаете, а может и нет про процедуру Sheets(i).Copy after:=Sheets(i) (или before - если перед i-й страницей). Я создаю первую страницу в книге, инициализирую (IniSheet() - та же установка параметров страницы). А далее копирую скока угодно новых страниц в книге!!!! Тоже получается быстро (кроме инициализации первой).

Private Sub Itog_Step_Small(Path$, S$, ByVal NewName$, Tip$, N%)
Const S1$ = "Реестр Федерального казначейства по "
..............
Set xlBook = xlApp.Workbooks.Add
Set xlRange = xlBook.ActiveSheet
IniSheet xlRange, Tip
With xlBook
For I = 1 To N
If Tip = "К_" Or Tip = "_К" Then
S2 = S1 & PredstavAltern(I) & " (Кредит)"
Else
S2 = S1 & PredstavAltern(I) & " (Дебет)"
End If
With .Sheets(I)
.Cells(1, 1) = S2
.Name = PredstavAltern(I)
End With
If I < N Then .Sheets(1).Copy after:=.Sheets(I)
Next I
End With
..............
End Sub


P.S.: Надо попробовать Application.ExecuteExcel4Macro (может в натуре будет ешо быстрее работать!!!)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Оптимизация кода
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]