Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel更新通知-Lotus Notes_Excel_Lotus Notes - Fatal编程技术网

Excel更新通知-Lotus Notes

Excel更新通知-Lotus Notes,excel,lotus-notes,Excel,Lotus Notes,我对这一切都很陌生,但我有以下问题。我有一个Excel工作表,在我公司的服务器上共享,我想向不同的用户发送一封自动电子邮件,通知此文件已更新。我们使用LotusNotes,这可能吗 我尝试了下面的代码,但没有工作 Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) ActiveWorkbook.EnvelopeVisible = True With ActiveSheet.M

我对这一切都很陌生,但我有以下问题。我有一个Excel工作表,在我公司的服务器上共享,我想向不同的用户发送一封自动电子邮件,通知此文件已更新。我们使用LotusNotes,这可能吗

我尝试了下面的代码,但没有工作

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ActiveWorkbook.EnvelopeVisible = True

    With ActiveSheet.MailEnvelope
        .Introduction = "Hello, Tvoloria! - the workbook was saved by " & Environ("USERNAME") & " at " & Format(Now(), "ddd dd mmm yy hh:mm")
        .Item.To = "asd@asd.com"
        .Item.Subject = "Workbook Saved!"
        .Item.display
        '.Item.send
    End With
End Sub

你可以用这样的方式发送电子邮件

Sub test()

  Subject = "Workbook Saved!"
  body = "Hello, Tvoloria! - the workbook was saved by " & Environ("USERNAME") & " at " & Format(Now(), "ddd dd mmm yy hh:mm")
  Recipient = "you@xx.com"
  CopyTo = "you@xx.com"

  Set Session = CreateObject("Notes.NotesSession")
  Set Database = Session.GETDATABASE("", "")
  If Database.IsOpen = False Then Database.OPENMAIL
  Set Document = Database.CreateDocument

  With Document
    .SendTo = Recipient
    .CopyTo = CopyTo
    .Subject = Subject
    .body = body
    .SaveMessageOnSend = True
    .PostedDate = Now()
    .Send 0, Recipient
  End With


  Set Document = Nothing
  Set Database = Nothing
  Set Session = Nothing

End Sub

你可以用这样的方式发送电子邮件

Sub test()

  Subject = "Workbook Saved!"
  body = "Hello, Tvoloria! - the workbook was saved by " & Environ("USERNAME") & " at " & Format(Now(), "ddd dd mmm yy hh:mm")
  Recipient = "you@xx.com"
  CopyTo = "you@xx.com"

  Set Session = CreateObject("Notes.NotesSession")
  Set Database = Session.GETDATABASE("", "")
  If Database.IsOpen = False Then Database.OPENMAIL
  Set Document = Database.CreateDocument

  With Document
    .SendTo = Recipient
    .CopyTo = CopyTo
    .Subject = Subject
    .body = body
    .SaveMessageOnSend = True
    .PostedDate = Now()
    .Send 0, Recipient
  End With


  Set Document = Nothing
  Set Database = Nothing
  Set Session = Nothing

End Sub

要使用lotusnotes发送邮件,您需要使用lotusnotes类,而不是“在某处”找到的一些微软的东西

如果已安装Notes客户端,则可以使用OLE:

Dim ses as Object
Dim db as Object
Dim memo as Object

Set ses = CreateObject( "Notes.NotesSession" ) '- NotesSession is the root for every action over OLE
'- create an empty database object
Set db = ses.GetDatabase( "" , "" )
'- open users mailfile
Call db.OpenMail
'- Create a new Mail
Set memo = db.CreateDocument()
'- Fill all information
With memo
  .Form = "Memo"
  .SendTo = "asd@asd.com"
  .Subject = "Workbook Saved!"
  .Body = "Hello, Tvoloria! - the workbook was saved by " & Environ("USERNAME") & " at " & Format(Now(), "ddd dd mmm yy hh:mm")
  .Send( False )

这段代码只是为了演示这个想法,它没有经过测试,可能会抛出一些错误。它需要安装并启动Lotus Notes客户端。

要使用Lotus Notes发送邮件,您需要使用Lotus Notes类,而不是“在某处”找到的一些Microsoft类

如果已安装Notes客户端,则可以使用OLE:

Dim ses as Object
Dim db as Object
Dim memo as Object

Set ses = CreateObject( "Notes.NotesSession" ) '- NotesSession is the root for every action over OLE
'- create an empty database object
Set db = ses.GetDatabase( "" , "" )
'- open users mailfile
Call db.OpenMail
'- Create a new Mail
Set memo = db.CreateDocument()
'- Fill all information
With memo
  .Form = "Memo"
  .SendTo = "asd@asd.com"
  .Subject = "Workbook Saved!"
  .Body = "Hello, Tvoloria! - the workbook was saved by " & Environ("USERNAME") & " at " & Format(Now(), "ddd dd mmm yy hh:mm")
  .Send( False )

这段代码只是为了演示这个想法,它没有经过测试,可能会抛出一些错误。它需要安装并启动Lotus Notes客户端。

您好,Imran,非常感谢您的支持。我试过了,似乎效果不错,但只有在我运行宏时,才有办法使其自动化?只需在您定义的保存之前(ByVal SaveAsUI为布尔值,Cancel为布尔值)将整个代码放入您的私有子工作簿中即可。SendTo无需使用.Send定义收件人。其他一切都很好。嗨,伊姆兰,非常感谢你的支持。我试过了,似乎效果不错,但只有在我运行宏时,才有办法使其自动化?只需在您定义的保存之前(ByVal SaveAsUI为布尔值,Cancel为布尔值)将整个代码放入您的私有子工作簿中即可。SendTo无需使用.Send定义收件人。其他一切都很好,最好使用COM对象(早期绑定),因为使用OLE需要Notes客户端打开并登录才能运行。使用COM,脚本可以在需要时提示用户输入NotesID的密码,因为如果客户端未打开,脚本将启动COM服务器。最好使用COM对象(早期绑定),因为使用OLE需要Notes客户端打开并登录才能运行。使用COM,脚本可以在需要时提示用户输入NotesID的密码,因为如果客户端未打开,脚本将启动COM服务器。