|
Access VBAで教えて下さい。AccessのクエリのデータをExcelシートに貼り付けるコードを書きましたが、「RangeクラスのPasteSpecialメソッドが失敗しました。」のエラーが出ます。
Excelからのデータは一旦Temp.xlsに吐き出し、2行目のデータをコピーし、別のワークブックのシートに「値貼り付け」をしたいのです。
コピーするタイミングなどいろいろとコードを書き換えて試してみましたがうまくいきません。
ご教授宜しくお願いします。
(Windows XP/Access 2003/Excel 2003)
以下コードです。
=============================================================================
Private Sub コマンド91_Click()
On Error GoTo Err_コマンド91_Click
Dim xlApp As Object
Dim Fn As String
Dim xlFn As String
Fn = "c:\Temp\temp.xls" 'テンポラリブック
xlFn = "C:Sales.xls"
DoCmd.OutputTo acOutputQuery,"Q_Sales_Vol",acFormatXLS,Fn,True, ""
Set xlApp = GetObject(, "Excel.Application")
xlApp.Visible = True
With xlApp
.ScreenUpdating = False
.workbooks("temp.xls").Activate
.Worksheets(1).Activate
.Range("A2").Select
.Range("A2:AL2").Select
.selection.copy
.workbooks.Open xlFn
.Worksheets("Data").Activate
.Range("A2").Select
.selection.PasteSpecial Paste:=xlPasteValues '←ここでエラーが発生
.activeworkbook.Worksheets("Sales_GR").Activate
.range("A1").select
.ScreenUpdating = True
.activeworkbook.Close True
.UserControl = True
Exit_コマンド91_Click:
On Error Resume Next
.DisplayAlerts = False
.Quit
.DisplayAlerts = True
Kill Fn
End With
Set xlApp = Nothing
Exit Sub
Err_コマンド91_Click:
MsgBox Err.Description
Resume Exit_コマンド91_Click
End Sub
=============================================================================
|
|