2016-09-29 8 views
1

行の日付セル(列H)が現在の日付より大きいか等しい場合は、範囲内の行を電子メールに取り込むマクロを作成しようとしています。日付の値を持つExcel VBA Unionの行数=日付

以下のコードは、一見ランダムな行を電子メールに取り込みます。

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の範囲は、実際にはiを返します... これを列7と呼びますが、混乱の少ない結果が得られます。

また、これをデバッグするには、コードをステップ実行し、一致結果をunionコマンドに加えて変数に送信します。

あなたの地元の窓でそれが一致するたびに確認することができますし、一致させる情報が一致していることを確認することができます。

0

あなたの日付は列Hである場合、あなたの範囲は、列Bから始まるので、あなたは以下のように列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 
関連する問題