2016-08-13 3 views
-2

このワークブックを開くと、数式を書き込んで複数のワークブックへのリンクを作成するスクリプトが実行されます。各ブックには、ブック1、すなわち3列に書き込むあり12のワークブック全て.xlsmは、現在と同じファイル内に位置このvbaスクリプトの高速化

WBNAME = "=IF(AND('\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]iForms'!A2<>"""",'\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]iForms'!E2=""""),'\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]iForms'!A2,"""")" 
Worksheets("All Release Items").Range("A2:A100").Value = WBNAME 
WBNAME2 = "=IF(AND('\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]iForms'!A2<>"""",'\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]iForms'!D2<>"""",'\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]iForms'!E2=""""),'\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]iForms'!D2,"""")" 
Worksheets("All Release Items").Range("B2:B100").Value = WBNAME2 
WBNAME3 = "=IF('\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]All Release Items'!A2<>"""",'\\insurance\it\FileData\Computers\Release Note\[Aliens.xlsm]All Release Items'!A1,"""")" 
Worksheets("All Release Items").Range("C2:C100").Value = WBNAME3 

.. A、B及びCに書き込み、ブック2はD、E、F等に書き込みますパス。 助けてください

答えて

0

問題の一部は、アプリケーションセッションで開いていない参照ブックに数式を更新する必要があります。ワークブックを開くと、おそらくもっと速くなり、数式が入力されます。

これは、計算モードを手動(「数式」リボンページの「計算」セクション、またはApplication.Calculation = xlCalculationManual)に設定し、次にマクロを実行してから「今すぐ計算」(リボン上でもう一度、またはF9)、それがどれくらいかかるかを見てください。参照しているワークブックが開いているときと閉じているときのような実行時間を比較する。私は数式を追加するのにマクロがほんの少し時間がかかることがわかると思いますが、ワークブックが閉じられているので計算に時間がかかります。

この場合、計算する前にワークブックを開くように書き換えます。

また、そのように参照する必要がある場合は、データをデータベースに格納することを検討してください。