2017-10-04 30 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) 

后的“设置第一个。”这似乎行。

相关问题