AccessからExcelレポートへのテーブルのエクスポートを自動化しようとしています。 Stack Overflowに関する私の研究から、エクスポートのためのVBAコード、そしてExcelシートをフォーマットするための別のコードを持つことをお勧めします。私はAccessからExcelシートの書式設定を実行することを大いに好むので、ボタンを押すだけで、その物がエクスポートされます。このレポートを実行することは絶対に嫌いです。私は、他にもやるべきことがあるとき、みんなが「今すぐ」を望んでいるからです。社長就任のためのものなので、私のような仲間はちょうど逃げなければなりません。AccessからExcelエクスポートテーブルを実行しようとしましたが、オブジェクト取得に必要なエラー
私は、これはここにコードを示唆した:https://stackoverflow.com/a/14401307/6850333を、私は任意の提案が高く評価され
Sub FormatACTrade(strFilePath As String) 'I'm running this from another _
sub that exports the tables to excel, I know functions are needed for _
an output but this is a private variable that I'm using within a modle_
so should be ok??
On Error GoTo ErrorHandler
Dim objFile As Object
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False
objExcel.DisplayAlerts = False
Set objFso = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(strFilePath)
If objFso.GetExtensionName(objFile.Path) = "xlsx" Then
Set objWorkbook = objExcel.Workbooks.Open(objFile.Path)
For Each sh In objWorkbook.Worksheets
If sh.UsedRange.Address <> "$A$1" Or sh.Range("A1") <> "" Then
With sh
[Do stuff]
End With
End If
Next
objWorkbook.Close True
End If
End Sub
「を設定していない変数またはWithブロック変数がオブジェクト」のエラーを取得しています。私はコーディングが新しく、vbaオブジェクト、スクリプト、およびアプリケーションに関するドキュメントは理解しにくいことを認めなければなりません。私はオブジェクトの名前を正しく指定していないと理解していますが、この行でコードが何をしているのかを実際には理解していません。Set objWorkbook = objExcel.Workbooks.Open(objFile.Path)
、それは逃しました。 'objFile'には何も設定しません。 – Comintern
コンパイラにはフラグが立てられていませんが、それは私の頭の上にある行です。あなたは正しいですが、objFileは定義されていません。私はちょうど 'Dim objFile As Object'という行を追加しましたが、エラーは" Object variableまたはWithブロック変数が設定されていません "です。objFileに何を置くべきか分かりません。ファイル名は? –
あなたがやろうとしていることに依存します。私は、 'objFile.Path'の両方のインスタンスが' strFilePath'であると思われます。 – Comintern