我确信这是严格的用户错误,但对于我的生活,我无法发现如何迭代表,并将记录写入Excel。我有下面的代码,但它挂在第一个Manager ID
上,并在循环中不断重复写入。我想迭代表中的所有Manager ID
并将它们写入同一个工作簿。
我应该如何调整此代码才能执行此操作?
Set xlR = xlWb.Worksheets(1).Range("$R$2")
i=0
Set rs2 = Db.OpenRecordset("SELECT * FROM TestTable ORDER BY [Manager ID] ASC", dbOpenDynaset)
managerName = CLng(rs2.Fields(3).Value)
Debug.Print managerName
With rs2
.MoveLast
.MoveFirst
Do While Not .EOF
xlR.Value = .Fields(0).Value
xlR.Offset(ColumnOffset:=1 + (i * 2)).Value = .Fields(2).Value
xlR.Offset(ColumnOffset:=2 + (i * 2)).Value = "ENTATH01"
i = i + 1
.MoveNext
Loop
.Close
End With
xlWb.SaveAs FileName:=sPath & sFile, FileFormat:=xlOpenXMLWorkbook
xlWb.Close SaveChanges:=True
rs2.MoveNext
答案 0 :(得分:3)
您没有更改偏移量,因此您不断指定相同的单元格。
尝试以下方法:
xlR.Offset(ColumnOffset:=i * 3).Value
xlR.Offset(ColumnOffset:=1+(i*3)).Value = .Fields(2).Value
xlR.Offset(ColumnOffset:=2+(i*3)).Value = "ENTATH01"
我假设您正在将i初始化为0
答案 1 :(得分:0)
变化:¨
i = i + 1
.MoveNext
到
i = i + 2
.MoveNext