我正在尝试编写一个宏,如果行中的日期单元格(列H)大于或等于当前日期,则使用范围内的行填充电子邮件。
以下代码使用看似随机的行填充电子邮件。
Dim rng As Range
Dim row As Range
Dim rng2 As Range
Set rng = Range("B52:I79")
For Each row In rng.Rows
If row.Columns("H") >= Date Then
If Not rng2 Is Nothing Then
Set rng2 = Union(rng2, row)
Else
Set rng2 = row
End If
End If
Next
任何帮助都会很棒!
答案 0 :(得分:0)
由于您的范围从B列开始,如果您的日期位于H列,那么您需要将其称为G列,如下所示:
Dim rng As Range
Dim row As Range
Dim rng2 As Range
Set rng = Range("B52:I79")
For Each row In rng.Rows
If row.Columns("G") >= Date Then
If Not rng2 Is Nothing Then
Set rng2 = Union(rng2, row)
Else
Set rng2 = row
End If
End If
Next
答案 1 :(得分:0)
不使用范围内的字母引用列,而是使用数字。这样他们相对来说更明显。
范围从b到i,列h实际上将返回i ... 尽管如此,将其称为第7列,您可以减少令人困惑的结果。
此外,要调试此操作,请逐步执行代码并将匹配结果发送到除union命令之外的变量。
通过这种方式,您可以在每次匹配时在本地窗口中看到,并且您可以确保要匹配的信息是正在匹配的信息。