ユーザーがアクションを要求した後、データを Excel にエクスポートするコードを作成しようとしています。基本的に、Excelへのエクスポートは成功していますが、新しいExcelアプリケーションではなく、新しいタブに書き込みたい2番目のインスタンスです。
oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
oBook = oExcel.Workbooks.Add
oSheet = oBook.Worksheets(3)
oSheet.Delete()
oSheet = oBook.Worksheets(2)
oSheet.Delete()
oSheet = oBook.Worksheets(1)
oSheet.Name = "Run " & Counter
この時点で、ユーザーがボタンを押すと、Excel はアクティブではなくなります。そのため、新しいシートにさらにデータを書き込みたい場合、コードを正確に繰り返さない限り、オブジェクト コマンドは機能しません。
私は試した:
Counter +=1
'For the first instance
If Counter = 1 Then
oExcel = CreateObject("Excel.Application")
oExcel.Visible = True
oBook = oExcel.Workbooks.Add
oSheet = oBook.Worksheets(3)
oSheet.Delete()
oSheet = oBook.Worksheets(2)
oSheet.Delete()
oSheet = oBook.Worksheets(1)
oSheet.Name = "Run " & Counter
Else
'For every instance after that the user wants to do another run
oExcel.ActivateObject(Excel.Application)
oBook = oExcel.Workbooks(1)
oSheet = oBook.Worksheets.Add
oSheet.Name = "Run " & Counter
End If
私は何日も探していて、とてもイライラしています。データの書き込みを続行するために、開いている Excel を参照する方法がわかりません。ユーザーが VB フォームのボタンを押して、もう一度実行することを確認した後です。