2017-07-20 9 views
0

複数のスプレッドシートを生成するプロセスがあります。それはそれらを保存しません。通常は手動で保存されるので問題ありません。 各シートに順番にアクセスし、魔法を実行してからシートを保存して閉じるマクロを書きたいと思います。 Excel 2016を使用している場合、これは問題ではありません。 しかし、私は仕事でExcel 2010を持っており、それは仕事の本を見ることができません。エクセル2016でVBA経由で別のExcelインスタンスでExcel 2010シートにアクセスする

このメソッドが動作します。私は外部のワークブック

を開くために使用すべき方法である何

Workbooks("Book3").sheets("B3T1").activate 
runtime error '9'. Subscript out of Range 

Workbooks("Book3").sheets("B3T1").activate 
ActiveWindow.WindowState = xlMaximized 

エクセル2010と、これは私が受け取るメッセージです

ありがとう、事前に

+0

外部ワークブックが同じリポジトリに常にに縮小されて?もしそうなら、あなたはWorkbook.openメソッドを使うことができますか? –

+0

ブックはすでに開いています。それは救われていない。彼らはBook1 ... Book18です。それぞれに2つのシート「テーブル」、「データ」があります –

+0

このラインを2に分割して、シートまたはブックから「範囲外」エラーが発生していないかどうかを確認しましたか? –

答えて

0

アクセスされているワークブックがすでにsaであるある場所にいる。

これは外部ファイルを開いてアクセスします。マクロは、ファイルを閉じて保存します。

Dim wb As Workbook 
Dim fileloc As String 
fileloc = "" & "C:namenamename" & ".xlsm" & "" 
Set wb = Workbooks.Open(fileloc) 
wb.Worksheets("Sheet1").activate 
wb.Close savechanges:=True 
0

ワークシートは、ワークシートを生成するプロセスによって保存されません。それは手動操作です。 100枚のワークシートがあり、私は各シートを最大化する/それを処理する/保存することを避ける方法を望んでいました。

GetObjectメソッドは最終的に働いた:

For ptr = 1 To 100 
    Set xlApp = GetObject("Book" & ptr).Application 
    xlApp.Application.Workbooks("Book" & ptr).Sheets(1).Activate 
    do some processing 
    xlApp.Application.Quit 
next 

1時間+処理について、1秒

関連する問題