我有以下代码,它从我的MS Access(小型酒店预订数据库)表单中获取某些字段,并在所述Excel文件中填充已定义的单元格。
Dim objXLApp As Object
Dim objXLBook As Object
Set objXLApp = CreateObject("Excel.Application")
Set objXLBook = objXLApp.Workbooks.Open("Y:\123files\File\Hotel Reservation.xls")
objXLApp.Application.Visible = True
objXLBook.ActiveSheet.Range("B2") = Me.GuestFirstName & " " & GuestLastName
objXLBook.ActiveSheet.Range("C2") = Me.PhoneNumber
objXLBook.ActiveSheet.Range("E2") = Me.cboCheckInDate
objXLBook.ActiveSheet.Range("F2") = Me.cboCheckOutDate
objXLBook.ActiveSheet.Range("H2") = Me.RoomType
objXLBook.ActiveSheet.Range("I2") = Me.RoomNumber
End Sub
Me.RoomType是一个组合框,行源是3列查询。当我运行代码时,excel文件列出了我的查询中的第一列而不是我需要的第2列,如何指示它添加我的查询的第二列而不是第一列?另外,当我在Access文件中切换到新客户表单时,如何移动到excel文件的下一行?
由于
答案 0 :(得分:1)
使用组合框的Column属性提取所需的值。列编号从零开始,因此第二个将是Column(1)。试试这个:
objXLBook.ActiveSheet.Range("H2") = Me.RoomType.Column(1)
有关详细信息,请参阅How to Use the Column Property of a Combo Box to Update a Text Box
上的方法2我不确定在回答第二个问题时应该说些什么。我认为你应该在运行时通过连接列字母和行号变量来指定你的范围。
Dim lngExcelRow as Long
lngExcelRow = 2
objXLBook.ActiveSheet.Range("B" & lngExcelRow) = [something ...]
然后写入不同的工作表行,更改lngExcelRow的值。