|
|
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Как оптимизировать следующий код (установка параметров страницы) 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 уж очень долго выполняется! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 11:51:03 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
кажется, не ускоришь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2006, 12:47:16 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Возможно, сделал, но на всякий напоминаю - отключить автоматический пересчет формул. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 08:54:30 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Сделал так: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 09:20:21 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Сделал так: 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 09:21:28 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
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 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 09:32:58 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Как на не активном листе выставить значения не знаю. Я только учусь! :) В справке 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 10:28:05 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
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 Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2006, 13:51:43 |
|
||
|
Оптимизация кода
|
|||
|---|---|---|---|
|
#18+
Подобная хрень требовалась мне (буквально на днях!!!!). Тоже ПОНИМАШЬ оптимизирую программу, шоб работала ешо быстрее. Мне надо было в одной книге создавать кучу листов (в зависимости от параметра 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 (может в натуре будет ешо быстрее работать!!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2006, 13:38:56 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=34166047&tid=2183807]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 298ms |

| 0 / 0 |
