2016-09-29 39 views
1

我正在尝试编写一个宏,该行使用行中的行填充电子邮件,如果该行中的日期单元格(列H)大于或等于当前日期。Excel VBA联盟行日期值> =日期

下面的代码使用看似随机的行填充电子邮件。

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

相反闯民宅到列用字母的范围内,使用数字。这样它们比较明显。

范围从b到i列h实际上将返回我... 称它为第7列虽然和你得到较少的混淆结果。

另外,为了调试这个,除了union命令之外,还要遍历代码并将匹配结果发送给一个变量。

这样,每次匹配时您都可以在当地人窗口中看到,并且您可以确保要匹配的信息是匹配的信息。

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