iT邦幫忙

0

請問一個EXCEL VBA儲存格範圍判斷是否空白

  • 分享至 

  • xImage

假設a2不是空白,我要判斷A1:b1的儲存格是否為空白
If .Range("a2") <> "" And .Range("a1") = "" And .Range("b1") = "" Then MsgBox "請確認是否有跳行": Exit Sub
這樣是沒有問題
但是如果假設a11不是空白,我要判斷a1:b10的儲存格是否為空白無資料
這樣應該要怎麼寫比較好?謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
蟹老闆
iT邦大師 1 級 ‧ 2012-11-23 13:34:18
最佳解答

可以用
WorksheetFunction.CountA("A1:A10")
若小於10則表示有空的儲存格

8
ltc09
iT邦研究生 4 級 ‧ 2012-11-25 18:00:07

IF Range("A11" ).Value <> "" then
for ia = 1 to 10
if Range("A" & IA).Value <> "" OR Range("B" & IA).Value <> "" then
msgbox "有資料"
endif
next ia
endif

0
paul60209
iT邦新手 5 級 ‧ 2019-04-17 11:28:43

以下程式碼是先找出整張表格的最末後一行與最後一列的位置,
利用Ctrl+方向鍵的的概念來判斷是否有跳行的情況產生,
(因為如果中間無空格,你從最末列利用"Ctrl+方向鍵"所得到的列號應該等於1。)

Sub 是否有跳行()
Dim LR as Intenger   'LR為表格最末列號
Dim LC as Intenger   'LC為表格最右行號
Dim i as Intenger    'i為迴圈控制器
Dim CR as Intenger   'CR為檢查碼
With ActiveSheet
    LR=.cells(1048576,"A").End(xlUp).Row
    LC=.cells(1,"XFD").End(xlLeft).Column
    '如果Excel附檔名為.xls的話,把1048576改65536,"XFD"改"IV"
    For i=1 to LC
        CR=.cells(LR,i).End(xlUp).Row
        If CR<>1 Then
            Msgbox("有跳行狀況產生")
        End If
    Next
End With
End Sub

#VBA #Excel最末行 #Excel最末列 #Excel空格 #Excel跳行

我要發表回答

立即登入回答