Я начинаю новичок VBA, поэтому заранее заблаговременно для всех, кто может мне помочь. В основном я использую адаптированный фрагмент кода Ron de Bruin, чтобы автоматически отправлять почту ученикам, когда их посещаемость падает ниже определенного уровня, как показано в специальной ячейке excel. До сих пор, так хорошо, материал Рона де Бруина следит за этим. Но есть еще один критерий, который я хочу добавить, и это в основном для отправки почты, если есть также буква «Y» в другой ячейке в той же строке, что и посещаемость. Подводя итог, я хочу, чтобы почта отправлялась только тем, кто выполняет два критерия: 1) опускался ниже определенного уровня и 2) имел «Y» в другой ячейке, но на данный момент код учитывает только первый критерий. Огромное спасибо. Alun (код ниже)отправка автоматической почты из excel на основе нескольких условий
Option Explicit
Private Sub Worksheet_Calculate()
Dim FormulaRange As Range
Dim NotSentMsg As String
Dim MyMsg As String
Dim SentMsg As String
Dim MyLimit As Double
NotSentMsg = "Not Sent"
SentMsg = "Sent"
'Above the MyLimit value it will run the macro
MyLimit = 80
'Set the range with Formulas that you want to check
Set FormulaRange = Me.Range("BH279:BH280")
On Error GoTo EndMacro:
For Each FormulaCell In FormulaRange.Cells
With FormulaCell
If IsNumeric(.Value) = False Then
MyMsg = "Not numeric"
Else
If .Value < MyLimit Then
MyMsg = SentMsg
If .Offset(0, 1).Value = NotSentMsg Then
Call Mail_with_outlook2
End If
Else
MyMsg = NotSentMsg
End If
End If
Application.EnableEvents = False
.Offset(0, 1).Value = MyMsg
Application.EnableEvents = True
End With
Next FormulaCell
ExitMacro:
Exit Sub
EndMacro:
Application.EnableEvents = True
MsgBox "Some Error occurred." _
& vbLf & Err.Number _
& vbLf & Err.Description
End Sub
Вы можете исправить свою формулу с помощью префикса 'IF (AAA111 =" Y ", percent, 1)'. Если вы хотите улучшить свои знания, а не просто исправить эту проблему, я бы рекомендовал тег 'homework' (не уверенный в орфографии). – user3819867
Спасибо, Ричард, я попробую это в понедельник и дам вам знать. Если вы когда-нибудь забегаете на государственную должность, вы можете быть уверены в моей поддержке! – Alun
Ричард благодарит, я сначала попытался ответить на этот вопрос, потому что мои знания настолько ограничены, что я не уверен, как использовать ваше предложение, где вставить IF (AAA111 = «Y», процент, 1) и что мне нужно будет добавить для это работать. если бы вы могли уточнить, я был бы бесконечно благодарен. Alun – Alun