ExcelでVBAを使用して、下のセルが空かどうかを確認するにはどうすればよいですか?特定の範囲のすべての値を合計したいのですが、以下のセルが空でない場合に限ります。
それはVBAまたは他の方法でどういうわけか可能ですか?
例:
4 2 3 2 1
2 3 1
合計は次のようになります:4 + 3 + 2=9。
この簡単なコードを試してください
If IsEmpty(ActiveCell.Offset(1, 0)) Then
'your code here
End If
私はこれのための式をお勧めします
方式
=SUMPRODUCT((A1:E1)*(A2:E2<>""))
スナップショット
それでも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
データが他のデータベースからエクスポートされるときに、「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
必死の人のために:Excelセルが空のように見えることもありますが、検査すると、スペース文字などの目に見えないものが含まれている可能性があります。そして、これらすべてのIsEmpty関数とIsNull関数は役に立ちません。