在 Windows 上使用新版 Outlook 进行专业沟通和提高工作效率
我们使用翻译服务协助我们的用户。请原谅语法错误。
您是否更改了这些值以匹配电子表格中的中文?
如果 cell.Value = "Expiration" 或 cell.Value = "Reminder" 则
另外,需要明确的是,这不是一个自动宏 - 您需要手动运行它。
接下来我将测试该宏。
大神们您好,QQ邮件现在会触发邮件发送行为了,但是不点击 10列的单元格下不会触发邮件发送的行为
每次都需要点击J10列有“提醒”的单元格了才会触发邮件发送的行为,單元格的“提醒”不是文本,是輸入函數轉換的自動填充的“提醒”,,該怎麼辦,期待您的再次幫助......謝謝.....祝您開心快樂每一天..
在 Windows 上使用新版 Outlook 进行专业沟通和提高工作效率
锁定的问题。 此问题已从 Microsoft 支持社区迁移。 你可投票决定它是否有用,但不能添加评论或回复,也不能关注问题。
我们使用翻译服务协助我们的用户。请原谅语法错误。
您是否更改了这些值以匹配电子表格中的中文?
如果 cell.Value = "Expiration" 或 cell.Value = "Reminder" 则
另外,需要明确的是,这不是一个自动宏 - 您需要手动运行它。
接下来我将测试该宏。
大神您好,我复制了您给的连接代码,测试了不行,帮看下俺哪里出错了.......谢谢!
StartFragment
Public Sub RunMacro()
Dim Target As Range
Application.DisplayAlerts = True
Dim xOutApp As Object
Dim xMailItem As Object
Dim cell As Range
Dim xMailBody As String
Dim KeyColumn As String
Dim CheckValue As String
'On Error Resume Next
'Application.ScreenUpdating = False
'Application.DisplayAlerts = False
' Set the target column (column J = column 10)
'If Target.Column = 10 Then
' find the used range
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
' check the date column
For Each cell In Range("J2:J" & lastrow)
If cell.Value = "Expiration" Or cell.Value = "Reminder" Then
Debug.Print cell.Row
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "Reminder:" & vbNewLine & _
"Worksheet:" & Me.Name & vbNewLine & _
"Location: " & Range("C" & cell.Row).Value & vbNewLine & _
"Content: " & cell.Value & vbNewLine & _
"Time:" & Format(Now, "yyyy-mm-dd hh:mm:ss") & vbNewLine
With xMailItem
.To = "******@address.com"
.Subject = "?Excel Reminder?Task due reminder!"
.Body = xMailBody
.Display 'Change to .Send to send automatically
.Save
End With
Set xMailItem = Nothing
Set xOutApp = Nothing
End If
Next cell
'End If
'Application.DisplayAlerts = True
'Application.ScreenUpdating = True
End Sub
EndFragment
我们使用翻译服务协助我们的用户。请原谅语法错误。
这是您需要添加的代码,将值复制到单元格,然后检查它,这样您就不会多次发送消息
对于范围内的每个单元格(“J2:J”&lastrow)
'如果已经发送了电子邮件,则跳过
如果 Range("K" & cell.Row).Value = cell.Value 则
如果结束
如果 cell.Value = "Expiration" 或 cell.Value = "Reminder" 则
'将值复制到下一个单元格,这样你就知道电子邮件已发送
范围(“K”&cell.Row).值=cell.值
设置 xOutApp = CreateObject("Outlook.Application")
我们使用翻译服务协助我们的用户。请原谅语法错误。
我测试过的完整宏的文本文件在这里 - https:\www.slipstick.com\files\QQmail-macro.txt
因为公式设置的是 J 列的值,所以不需要使用 lcase。复制并粘贴公式中的单词即可确保结果准确。
我没有添加将值复制到新单元格并进行比较的代码。
我更换了
' 设置目标列(J列 = 第10列)
如果 Target.Column = 10 则
对于目标中的每个单元格
如果 LCase(cell.Value) = "Expiration" 或 LCase(cell.Value) = "Reminder" 则
有了这个:
' 查找已使用的范围
lastrow = Cells(Rows.Count,1).End(xlUp).Row
' 检查 J 列
对于范围内的每个单元格(“J2:J”&lastrow)
如果 cell.Value = "Expiration" 或 cell.Value = "Reminder" 则
rowNumber = Range(cell.Address).Row
并使用它从电子表格中获取值以包含在电子邮件中
xMailBody = "提醒:" & vbNewLine & _
"工作表:" & Me.Name & vbNewLine & _
"位置:" & Range("C" & cell.Row).Value & vbNewLine & _
“内容:”&cell.Value&vbNewLine&_
“时间:” & 格式(现在,“yyyy-mm-dd hh:mm:ss”) & vbNewLine
大神您好,代码是上一位大神设置的,俺不懂这些,您可不以把完整代码发一份试用下.....谢谢!