2017-10-04 122 views
0

我的VBA代碼應該把我的查詢在MS Access(無頭)enter image description here細胞K17名爲現有的Excel電子表格總計Excel文件更新,但沒有任何變化:出口查詢無頭擅長

當我運行模塊,Excel文件的屬性下,最後修改時間沒有得到更新,當我運行的模塊。但是我沒有在Excel電子表格中看到我的查詢。

在我的代碼的任何建議將高度讚賞。非常感謝!

Sub TransToXL() 

    Dim xlApp As Excel.Application 
    Dim xlWB As Excel.Workbook 
    Dim xlWS As Excel.Worksheet 
    Dim acRng As Variant 
    Dim xlRow As Integer 

    Dim qry As QueryDef 
    Dim rst As Recordset 
    Set xlApp = New Excel.Application 
    Set xlWB = xlApp.Workbooks.Open("C:\Users\MyName\Desktop\August 2017.xlsx") 
    Set xlWS = xlWB.Worksheets("Totals") 

    xlRow = (xlWS.Columns("K").End(xlDown).Row) 

    Set qry = CurrentDb.QueryDefs("DollarsSold") 
    Set rst = qry.OpenRecordset 

    Dim c As Integer 
    c = 11 
    xlRow = xlRow + 16 

    Do Until rst.EOF 
     For Each acRng In rst.Fields 
      xlWS.Cells(xlRow, c).Formula = acRng 
      c = c + 1 
     Next acRng 
     xlRow = xlRow + 1 
     c = 1 
     rst.MoveNext 
     If xlRow > 25 Then GoTo rq_Exit 
    Loop 

rq_Exit: 
    rst.Close 
    Set rst = Nothing 
    Set xlWS = Nothing 
    xlWB.Close acSaveYes 
    Set xlWB = Nothing 
    xlApp.Quit 
    Set xlApp = Nothing 
    Exit Sub 

End Sub 

變量c是一個存儲科拉姆數,其中c = 1表示列A,11將是K.在該代碼中,我感到困惑我設置xlRow+16的方式。 xlRow+16,c = 11沒有指出K17。有任何建議嗎?謝謝!

+0

請更具體和詳細:你想acheive什麼?什麼不工作?錯誤訊息? – peakpeak

+0

道歉,我的問題不是那麼具體。我剛剛更新,仔細檢查'xlWS.Cells'是否指向單元格K17 @peakpeak –

+0

這是什麼問題? – peakpeak

回答

0

是否有一個原因,您使用的是做,直到循環?如果記錄只有1行數據的(總),它看起來像你可以消除環路,只是使用類似:

xlWS.Range("K17").Value = rst.Fields(0) 

後的「設置第一個。」這似乎行。

相關問題