2017-12-16 7 views
0

Excelブックを生成し、アクセス不可能な形式にしたいと考えています。ファイルの作成は簡単ですが、私はフォーマットに苦しんでいます。Access VBAで使用するExcelアプリケーションのプロパティ

ファイル作成

Dim xl As Object 
'This deals with Excel already being open or not 
On Error Resume Next 
Set xl = GetObject(, "Excel.Application") 
On Error GoTo 0 
If xl Is Nothing Then 
    Set xl = CreateObject("Excel.Application") 
End If 

Set XlBook = GetObject(xlsxPath) 
'filename is the string with the link to the file ("C:/....blahblah.xls") 

'Make sure excel is visible on the screen 
xl.Visible = True 
XlBook.Windows(1).Visible = True 
'xl.ActiveWindow.Zoom = 75 

'Define the sheet in the Workbook as XlSheet 
Set xlsheet1 = XlBook.Worksheets(1) 

'Format 
With xlsheet1 
    xlsheet1.Rows("1:1").Select 

、ここでは私の誤りである文字列

strCurrentDBName = CurrentDb.Name 
For i = Len(strCurrentDBName) To 1 Step -1 
    If Mid(strCurrentDBName, i, 1) = "\" Then 
     strPath = Left(strCurrentDBName, i) 
     Exit For 
    End If 
Next 
xlsxPath = strPath & "Report.xlsx" 

DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Report", xlsxPath, True 

MsgBox ("Report generated. " & xlsxPath) 

フォーマットとして 点心strCurrentDBName(実行時エラー '1004':アプリケーション定義またはオブジェクト定義のエラー)

xlsheet1.Range(xl.Selection, xl.Selection.End(xlDown)).Select 
    xlsheet1.Selection.EntireRow.AutoFit 

End With 

答えて

1

あなたはxlDownのenum値を使用していますが、req Microsoft Excel Object Libraryへの参照です。レイトバインディングを使用しているので、その参照はおそらく設定されていません。 xlDownの値を使用して、その周り

は仕事、-4121:

xlsheet1.Range(xl.Selection, xl.Selection.End(-4121)).Select 

注あなたはモジュールの上部にOption Explicit入れていた場合に、このエラーは見つけることがより簡単だっただろうということ。

関連する問題