【发布时间】:2013-08-07 10:03:52
【问题描述】:
我正在处理 excel 宏,但在某一时刻卡住了。需要帮助来解决它。
我必须在工作表中查找 2 行,并为 1 行中的每个值查找 2 行中的单元格值。如果第 2 行中的值范围等于某个条件值,则退出第 2 行检查并将标志设置为真。为了实现这一点,我使用了两个 For Each 循环:
Sub Sendmail ()
For Each cell in Rows("5").Cells.SpecialCells(xlCellTypeConstant)
If cells.Value Like "*@*" Then
Subj = "Fill the Sheet"
Recipient = cell.Offset(0,-3).Value
EmailAddr = cell.Offset.Value
For Each row In Sheet14.Range("O244:AK244").Cells
If Not row = '8.00" Then
found = False
Else
found = True
End If
Next row
If found = False Then
Msg = "Hi " & Recipient & vbCrLf & vbCrLf
Msg = Msg & " Please fill the sheet for this week " & vbCrLf & vbCrLf
Set MItem = Outlook.CreateItem(oIMailItem)
With MItem
.To = EmailAddr
.Subject = Subj
.Body = Msg
.Save
End With
End If
End If
Next
End Sub
此处使用的found 变量定义为 Boolean ,但我无法正确使用它,并且每次found = false 正在执行。我只希望第 2 行的条件为真,然后只创建邮件。
【问题讨论】:
-
我会先看一下'If Not row = '8.00" Then'这行,你首先用单引号开始,然后用双引号结束。如果这是一个数字,那么引号应该不需要,如果是文本,请在两边使用双引号。
标签: loops excel for-loop each vba