2012-04-21 10 views
7

ExcelでVBAを使用して、下のセルが空であるかどうかを確認するにはどうすればよいですか? 以下のセルが空でない場合にのみ、特定の範囲内のすべての値を合計します。VBAを使用して、下のセルが空であるかどうかを確認します。

これは何らかの形でVBAやその他の方法で可能ですか?

例:

4 2 3 2 1 
2 3 1 

合計は次のようになります。4 + 3 + 2 =私はこの

FORMULA

=SUMPRODUCT((A1:E1)*(A2:E2<>"")) 

のための式をお勧めします9.

答えて

4

スナップショット

enter image description here

あなたはまだ実際にVBAその後、

VBA

Option Explicit 

Sub Sample() 
    Dim rng As Range 
    Dim Cl As Range 
    Dim tot As Long 

    Set rng = Range("A1:F1") 

    For Each Cl In rng 
     If Len(Trim(Cl.Offset(1))) <> 0 Then tot = tot + Cl.Value 
    Next 

    Debug.Print tot 
End Sub 

をしたい場合は、VBAでの多くのバージョンを持つことができます。上記の式も同様に評価できます。データが他のデータベースからエクスポートされたときの例

Option Explicit 

Sub Sample() 
    Debug.Print Evaluate("=SUMPRODUCT((A1:E1)*(A2:E2<>""""))") 
End Sub 
+0

@Siddarth Rout、非常に良いアプローチです。 – Marc

+0

ニース!あなたはこの部分について詳しく説明しますか: '<>' ''? – cherrun

+1

@Cherrun: "<>"は、「等しくない」の略です。だから、私は単にA2:E2の範囲で空ではない細胞を考慮に入れています。 –

9

この単純なコード

If IsEmpty(ActiveCell.Offset(1, 0)) Then 
'your code here 
End If 
1

を試してみて、私は単に「のisEmpty」を使用していくつかの問題がありました。これは私が開発した関数です:

Function IsVacant(TheVar As Variant) As Boolean 
    'LeandraG 2010 

    IsVacant = False 

    If IsEmpty(TheVar) Then IsVacant = True 
    If Trim(TheVar) = "" Then IsVacant = True 
    If Trim(TheVar) = "'" Then IsVacant = True 


End Function 
関連する問題