2012-04-21 33 views
7

Làm cách nào để sử dụng VBA trong Excel để kiểm tra xem ô bên dưới có trống không? Tôi muốn tổng hợp tất cả các giá trị trong một phạm vi cụ thể, nhưng chỉ, nếu ô bên dưới không trống.Sử dụng VBA để kiểm tra xem ô bên dưới có trống không

Có phải bằng cách nào đó có thể với VBA hoặc bất kỳ cách nào khác không?

Ví dụ:

4 2 3 2 1 
2 3 1 

Sum sẽ là: 4 + 3 + 2 = 9.

Trả lời

4

Tôi muốn giới thiệu một công thức cho việc này

CÔNG THỨC

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

SNAPSHOT

enter image description here

Nếu bạn vẫn muốn VBA sau đó

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 

Trong thực tế, bạn có thể có nhiều phiên bản trong VBA. Bạn cũng có thể đánh giá công thức trên. Ví dụ

Option Explicit 

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

@Siddarth Rout, cách tiếp cận rất hay. – Marc

+0

Rất tuyệt! Bạn có thể suy nghĩ kỹ về phần này: '<> ""'? – cherrun

+1

@Cherrun: "<>" là viết tắt của 'Not Equal To'. Vì vậy, tôi chỉ đơn giản là lấy các tế bào vào tài khoản mà không có sản phẩm nào trong phạm vi A2: E2. –

9

Hãy thử mã này đơn giản

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

Tôi đã có một số vấn đề sử dụng chỉ cần 'IsEmpty' khi dữ liệu được xuất khẩu từ cơ sở dữ liệu khác. Đây là chức năng tôi đã phát triển:

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 
Các vấn đề liên quan