2つのスプレッドシートがあります。スプレッドシート1とスプレッドシート2と呼ぶことにします。スプレッドシート1には、その月の曜日を生成する関数があり、月末になると、スプレッドシート2のモジュール/サブを呼び出そうとしています。これは、 「毎日」のレポートと「毎月の」レポートの両方が表示されます。2つの問題 - インスタンス化されたブックの変更の保存と他のブックのアクティブ化
この時点で、2つのエラーがあります。最初は、作成したスプレッドシート2の新しいインスタンスを保存しようとしています。エラーは、ブックをマクロフリー形式で保存するかどうかを確認することです。私は単にそれを保存したい!書式設定を変更しないでください。インスタンス化されたブックオブジェクトへの変更を保存しようとしていることさえ確信していません。
2番目がスプレッドシート2になっていますが、アクティブシートに設定しても、アクティブシートはスプレッドシート1のワークシートとして最初に表示されます。
何か助けていただければ幸いです。
対象のワークシートでは、モジュールWriteReport、サブルーチンCheckSpreadsheetに次のコードがあります。
Option Explicit
Public Sub CheckSpreadsheet(wbook As Excel.Workbook)
Set wosheet = wbook.Sheets("Monthly")
wosheet.Cells(5, 5) = "Hello world!"
End Sub
実行しているコードがExcelのVBAにある場合は、「Excel.Application」の2番目のインスタンスを開く特別な理由はありますか? – Jordan
希望は、ワークブック2を開き、それが見えるようにすることができないことでした。私はstackoverflow上の他の投稿によってアドバイスされました。これは、ワークブックオブジェクトに.visibleプロパティがないため、新しいアプリケーションを開くことです。 – bdpolinsky
十分に十分です。この問題は、 'Application.Run'を使って最初のExcelインスタンスから起動する' CheckSpreadsheet'サブルーチンを呼び出し、2番目に開いている 'Excel.Workbook'変数を渡しているという事実が原因ですExcelのインスタンス。 'Application.Run'を' app.Run'に置き換えて、Excel – Jordan