Outlook到Excel VBA覆盖以前的数据

我在论坛上发现了一个excelmacros,但是我无法修复这些问题,因为我真的不知道我在寻找什么来解决这个问题。

首先,我将解释我想要做什么,然后粘贴我正在使用的VBA,以便做我想做的事情。

  1. 我希望outlook只是将我的电子邮件的特定部分复制到特定的单元格。 我想要的电子邮件部分将是“000000”或“100000”。 我想让它进入B17并覆盖之前的数据。

目前,我正在将整个电子邮件的数据复制到之前复制的数据行的下面,我似乎无法改变它的位置(现在它进入A1并垂直下降)。

  1. 每次收到电子邮件时,Excel都希望打开和closures,这对我正在做的事情并不好。 我希望这个工作表保持打开状态,但只要从outlook中input任何数据后保存即可。

这张表将作为一个远程桌面进行监控,所以人们可以直接进入屏幕,并且说这是最新的信息,而不用去查找它(大多数使用这个远程桌面的人不会是熟悉我们的服务器,所以不知道在哪里find它,以及我们实际上并不希望人们窥探我们的服务器!)。

无论如何,这是代码:

Const xlUp As Long = -4162 Sub ExportToExcel(MyMail As MailItem) Dim strID As String, olNS As Outlook.NameSpace Dim olMail As Outlook.MailItem Dim strFileName As String '~~> Excel Variables Dim oXLApp As Object, oXLwb As Object, oXLws As Object Dim lRow As Long strID = MyMail.EntryID Set olNS = Application.GetNamespace("MAPI") Set olMail = olNS.GetItemFromID(strID) '~~> Establish an EXCEL application object On Error Resume Next Set oXLApp = GetObject(, "Excel.Application") '~~> If not found then create new instance If Err.Number <> 0 Then Set oXLApp = CreateObject("Excel.Application") End If Err.Clear On Error GoTo 0 '~~> Show Excel oXLApp.Visible = True '~~> Open the relevant file Set oXLwb = oXLApp.Workbooks.Open("\\server-01\company\Rachael\VBAs\Control Panel Visual Layout.xlsm") '~~> Set the relevant output sheet. Change as applicable Set oXLws = oXLwb.Sheets("Control Panel") lRow = oXLws.Range("A" & oXLApp.Rows.Count).End(xlUp).Row + 1 '~~> Write to outlook With oXLws ' '~~> Code here to output data from email to Excel File '~~> For example ' .Range("A" & lRow).Value = olMail.Body ' End With '~~> Close and Clean up Excel oXLwb.Close (True) oXLApp.Quit Set oXLws = Nothing Set oXLwb = Nothing Set oXLApp = Nothing Set olMail = Nothing Set olNS = Nothing End Sub 

任何和所有的帮助将不胜感激,我花了大约2个星期从谷歌尝试各种各样的东西,无济于事!