我一直在問那些比我更熟悉VBA的人,而不是我所希望的那種運氣。這是我需要:Office 2010 VBA - 將SenderEmailAddress傳遞給Excel工作簿並運行Excel宏以發送電子郵件
- 傳入電子郵件「Stats1」,「Stats2」,「Stats3」(等)在主題行
- 規則被觸發,捕獲發件人的電子郵件地址
- 打開的工作簿並通過電子郵件地址簿(例如:emaillog.xlsm)
- 追加到工作簿(未覆蓋)
- 登錄「emaillog.xlsm」
- 運行的Excel腳本的電子郵件地址,時間和日期(示例emailsend.xlsm) 對「emaillog.xlsm」最新的條目
- 發送範圍從「emailsend.xlsm」數據
- 保存並關閉「emaillog.xlsm」
下面是我對Excel的部分派:
Public dTime As Date
Sub AutoSchedule1()
dTime = Now() + TimeValue("01:00:00")
Sheet("Sheet1").Range("u1").Value = "Email On, next send at " & Hour(dTime) & ":" & Minute(dTime)
ActiveWorkbook.RefreshAll
Application.OnTime dTime, "SendStatsTeam"
If Hour(dTime) >= 18 Then
Application.OnTime dTime, "SendStatsTeam", , False
Exit Sub
End If
End Sub
Sub SendStatsTeam()
Dim AWorksheet As Worksheet
Dim Sendrng As Range
Dim rng As Range
Dim Hournow As Long
AutoSchedule1
On Error GoTo StopMacro
If Hour(Now()) > 12 Then
Hournow = Hour(Now()) - 12
Else
Hournow = Hour(Now())
End If
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set Sendrng = Worksheets("Sheet1").Range("A1:Z26")
Set AWorksheet = ActiveSheet
With Sendrng
ActiveWorkbook.EnvelopeVisible = True
With .Parent.MailEnvelope
.Introduction = "Here are your stats"
With .Item
.To = SenderEmailAddress
.CC = ""
.BCC = ""
.Subject = "Stats so far today" & Hour(Now()) & ":" & Application.WorksheetFunction.Text(Minute(Now()), "00")
.Send
End With
End With
rng.Select
End With
AWorksheet.Select
StopMacro:
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
ActiveWorkbook.EnvelopeVisible = False
End Sub
Sub emailoff()
Application.OnTime dTime, "SendStatsTeam", , False
Worksheets("Sheet2").Range("u1").Value = "Email Off"
End Sub
我意識到,我沒有做過的一切正確這裏我是相當新的VBA,但我嘗試了一切,我可以找出展望部分。
任何幫助將不勝感激 - 我不介意做閱讀我只是在一個點,我無法弄清楚下一部分什麼/去哪裏。
如果您選擇提供幫助,我想添加根據電子郵件主題發送不同範圍的不同工作表的功能。
感謝
你是否從Outlook或Excel開始8分(點)過程?你如何以及在哪裏設置兩個應用程序的連接? – 2013-04-27 05:35:37
使用規則啓動Outlook。 – TheOrion 2013-04-27 12:44:04