使用outlook vba更新现有的excel文件

我试图学习自己的VBA,我试图采取一个电子邮件的正文,parsing出来,并只保存到Excel文件的数组元素。 我这样做,我的问题是,我似乎无法得到它更新文件中已有的东西。 它只是重写与新的电子邮件信息,并保存在它。 我的问题是:我的代码需要什么才能继续写入我的Excel文件,而无需摆脱已经在那里。

Sub FMK(Item As Outlook.MailItem) Const PathName = "C:\Users\carter\Desktop\fmk.xlsx" Dim arrLines As Variant, _ varLines As Variant, _ RowNext As Integer, _ xlApp As Excel.Application, _ ExcelWkBk As Excel.Workbook, _ excWkb As Object, _ excWks As Object, _ temp As String arrLines = Split(Item.Body, vbCrLf) Set xlApp = Application.CreateObject("Excel.Application") Set excWkb = xlApp.Workbooks.Add() Set excWks = excWkb.ActiveSheet temp = Trim(arrLines(32)) RowNext = 1 With excWks excWks.Cells(RowNext, 1) = temp End With RowNext = RowNext + 1 excWkb.SaveAs PathName excWkb.Close 'this is just for testing purposes I will remove later MsgBox (arrLines(32)) End Sub 

感谢您的时间!

您将需要确定最后一次使用的行,并将新的数据放在后面。 就像是:-

 RowNext = excWks.Cells.SpecialCells(xlCellTypeLastCell).Row + 1 with excWks ... 

(你可能希望Dim RowNext为Long而不是Integer)

xlCellTypeLastCell可能是不可靠的,因为只有当文件被保存时才重置xlCellTypeLastCell – 也许这将足够满足您的需求。 如果没有,那么请参阅OzGrid的其他build议。