2016-07-05 2 views
0

このコードは私にとってはうまくいきます。唯一の問題は、私が開いているワークブックがかなり大きいファイルで、オープンに時間がかかり、スタートアップが遅くなります。私のプログラム。これをスピードアップする方法はありますか?私が開いているファイルはフィルタリングされて読み込まれ、プログラムには何も書き込まれず、保存する必要もありません。助言がありますか?ワークブックをスピードアップする

Application.ScreenUpdating = False 

On Error Resume Next 
Set xlWB = Workbooks.Open("\Item Setup\MODIFIED ITEM EXTRACT.xlsm") 

Application.ScreenUpdating = True 

PriceVerifier.Show 
+1

*かなり大きなファイル* - 大きなファイルは開くのに時間がかかります。 'Read Only'(それが助けになるか疑問に思う)として開くこともできますし、' opening on opens'引数で再生することもできます。そのブックには、更新されるたびに必要な情報を含むフラットファイルを更新するプログラムを作成し、このプログラムでそのフラットファイルを呼び出すこともできます。これが実現可能かどうかは分かりませんが、そこにアイデアを投げるだけです。 –

+1

私はあなたがワークブックで何をする必要があるのか​​分かりませんが、これがより良い答えを書くことができれば助かります。同様の問題が発生したときに、ブックを開き、それを既に開いているワークブックのピボット・テーブルに入れずに、データを抽出するためにクエリを使用することになりました。データはほぼ即座に抽出されます。 – jcarroll

+0

ファイルが開かれている間に計算を手動で試してみることができます。Application.Calculation = xlCalculationManual –

答えて

0

DBPathには独自のパスを、テストフィールドには独自のフィールドを、マニュアルエントリには独自のワークシートを入力します。 $を残してください。

Sub sbADOExample() 

    Dim sSQLQry As String 
    Dim Conn As New ADODB.Recordset 
    Dim rst As New ADODB.Recordset 
    Dim DBPath As String 
    Dim strConn As String 
    Dim strSQL As String 

    DBPath = "C:\user\testFile.xlsx" 

    strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBPath & ";" & _ 
       "Extended Properties=" & """" & "Excel 12.0 Xml;HDR=YES" & """;" 

    strSQL = "SELECT [Test Field] FROM [Manual Entry$] " 

    rst.Open strSQL, strConn 

    Sheet2.Range("A2").CopyFromRecordset rst 

    rst.Close 

End Sub 
関連する問題