使用VBA从Access附加到Excel

时间:2016-08-30 08:16:08

标签: excel vba ms-access access-vba

由于这个特殊问题,我无法获得将Access中导出的​​数据附加到Excel的代码。我创建了一个简单的Access数据库,其中包含一些表单上显示的数据。之后,可以使用代码将显示的记录导出到Excel。

到目前为止一切顺利。但是当我导出下一条记录时,它会覆盖Excel中第一行的先前导出的数据。我希望代码附加到下一行,依此类推。

我找到了一些关于如何使用“ActiveCell.Value”和“ActiveCell.Offset”进行追加的主题,但我的知识太有限了,无法使用代码。我认为我得到它的那一刻,VBE带来了错误。我似乎无法弄清楚这一点。

it "renders error in json" do
  expect(controller).to receive(:render).with(
    json:   { error: "some error" },
    status: :unprocessable_entity
  ).at_least(:once)

  post :create, price_patch_upload: { upload: "upload" }, format: :json
end

1 个答案:

答案 0 :(得分:1)

我已经尝试了这个并没有问题所以假设你有一个对正确的excel库的引用,你能看出它是否有效吗?

Sub Test()
Dim oExcel As Excel.Application
Dim oExcelWrkBk As Excel.Workbook
Dim oExcelWrSht As Excel.Worksheet

'Start Excel
On Error Resume Next
Set oExcel = GetObject(, "Excel.Application")
If Err <> 0 Then
    Err.Clear
    On Error GoTo Error_Handler
    Set oExcel = CreateObject("Excel.Application")
Else
    On Error GoTo Error_Handler
End If

oExcel.ScreenUpdating = False
oExcel.Visible = False 'This is false by default anyway

Set oExcelWrkBk = oExcel.Workbooks.Open("C:\test.xlsx")
Set oExcelWrSht = oExcelWrkBk.Sheets(1)

oExcelWrSht.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = "Test1"
oExcelWrSht.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0) = "Test2"
oExcelWrSht.Cells(Rows.Count, 3).End(xlUp).Offset(1, 0) = "Test3"

oExcelWrSht.Range("A1").Select

oExcelWrkBk.Save

oExcel.ScreenUpdating = True
oExcel.Visible = True

Exit_Point:
Set oExcelWrSht = Nothing
Set oExcelWrkBk = Nothing
Set oExcel = Nothing
Exit Sub

Error_Handler:
MsgBox Err & " - " & Err.Description
GoTo Exit_Point
End Sub