是否可以将新创建的Outlook约会窗口置于前面以使用Sendkeys函数?我正在用Excel创建新约会,将数据从工作簿复制到正文,并通过发送密钥将约会修改为Skype会议。但是有时约会在Excel后面打开,并且SendKeys操作不起作用。
我尝试使用AppActivate
,但是我想调试器说Invalid procedure call or argument
的方式做错了。也欢迎其他选择。
我也尝试过,但是它一直都无法正常工作,有时约会窗口仍然在后台打开:
Declare PtrSafe Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
.....
Dim olAppt As Outlook.AppointmentItem
Dim HWNDSrc As Long
.....
Set olAppt = olApp.CreateItem(olAppointmentItem)
SetForegroundWindow HWNDSrc
.....
这是我的完整代码:
Sub CreateNewOutlookAppointment()
Dim olApp As Outlook.Application
Dim olAppt As Outlook.AppointmentItem
Set olAppt = Nothing
Set olApp = Outlook.Application
Set olAppt = olApp.CreateItem(olAppointmentItem)
AppActivate olApp
With olAppt
.Subject = "Bid review" & ", " & ThisWorkbook.Sheets("Other Data").Range("P23").Value
ThisWorkbook.Sheets("Templates").Range("M202:M223").Copy
.Display
.GetInspector.WordEditor.Windows(1).Selection.PasteAndFormat wdPASTERTF
End With
Application.SendKeys ("%HOM")
Set olAppt = Nothing
End Sub
答案 0 :(得分:2)
尝试致电Inspector.Activate
。