要实现你的要求,可以使用Excel的VBA编程来完成。下面是一个示例代码,你可以将其添加到Excel的VBA编辑器中:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rng As Range
    Dim cell As Range
    Dim password As String
    Dim outlookApp As Object
    Dim outlookMail As Object
    
    ' 设置密码
    password = "your_password"
    
    ' 监听G列的变化
    Set rng = Intersect(Target, Range("G:G"))
    If rng Is Nothing Then Exit Sub
    
    ' 验证密码
    If InputBox("请输入密码:") <> password Then
        MsgBox "密码错误!", vbExclamation
        Exit Sub
    End If
    
    ' 向对应的H列的邮箱发送邮件
    Set outlookApp = CreateObject("Outlook.Application")
    
    For Each cell In rng
        ' 检查是否已发送过邮件
        If cell.Offset(0, 1).Value <> "" Then
            MsgBox "已发送过邮件!", vbExclamation
            Exit Sub
        End If
        
        ' 发送邮件
        Set outlookMail = outlookApp.CreateItem(0)
        With outlookMail
            .To = cell.Offset(0, 1).Value
            .Subject = "邮件主题"
            .Body = "邮件内容:" & vbCrLf & vbCrLf & "整行信息:" & cell.EntireRow.Value
            .Send
        End With
        
        ' 标记已发送邮件
        cell.Offset(0, 1).Value = "已发送"
    Next cell
    
    Set outlookMail = Nothing
    Set outlookApp = Nothing
End Sub

请注意,在使用该代码之前,你需要将your_password替换为你自己设置的密码,并根据需要修改邮件的主题和内容。

要将代码添加到Excel的VBA编辑器中,请按下ALT + F11打开VBA编辑器,然后在左侧的项目资源管理器中找到你要应用这个代码的工作表,双击打开该工作表的代码窗口,将代码粘贴到窗口中。

保存并关闭VBA编辑器后,当你在G列输入内容时,会提示输入密码。如果密码正确,将自动发送包含整行信息的邮件到对应的H列的邮箱,并在发送后将H列标记为"已发送"。


原文地址: https://www.cveoy.top/t/topic/iQa2 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录