返回列表 上一主題 發帖

[發問] 整列空白自動隱藏

[發問] 整列空白自動隱藏

大大好,

理貨單的統一規則:
1) 每個客戶理貨單格式相同,但G欄商品會有不同
2) 理貨單列數會依客戶下單,而有所變化
3) 理貨單的商品清單,都在B:M "品名" & "合計"之間,並預留一些空白列數
EX:
範例的38:43為空白列,就自動隱藏

請問如何讓B:M "品名" & "合計"之間,完全空白的列數,可以自動隱藏?
程式要可以自動偵測空白列
理貨單.rar (14.27 KB)

回復 1# PJChen

請測試看看,謝謝
Sub test()
Dim Arr, i%, j%, n%
Application.ScreenUpdating = False
Arr = Range("b1:m43")
For i = 3 To UBound(Arr)
    n = 0
    If Arr(i, 1) = "" Then
        For j = 1 To UBound(Arr, 2)
            If Arr(i, j) = "" Then n = n + 1
        Next
        If n = 12 Then Rows(i).EntireRow.Hidden = True
    End If
Next
Application.ScreenUpdating = True
End Sub

TOP

回復 2# samwang
您好,
這裡能否改為“商品”跟“合計”之間,
不要用指定實際範圍?
Arr = Range("b1:m43")
這樣才能套用到各個客戶的理貨單當中。

TOP

回復 3# PJChen


這裡能否改為“商品”跟“合計”之間,
不要用指定實際範圍?
>> 不好意思,後學不了解您得意思,可否說明詳細或舉例,謝謝

TOP

回復 3# PJChen

這裡能否改為“商品”跟“合計”之間,
不要用指定實際範圍?
>> 商品是哪個欄位?合計是哪個欄位
假設B欄~M欄又怎麼不用指定範圍
Arr = Range("b1:m43")
這樣才能套用到各個客戶的理貨單當中。
>> 這段我的理解是可以改為Arr = Range("b1:m" & [b65536].End(3).Row - 2),對嗎?

123擷取.PNG (46.31 KB)

123擷取.PNG

TOP

用"品名"檢查是否空白, 品名中間的空白不算,
只抓最後一筆"品名"至"合計"之間的空白行~

Sub 隱藏空白行()
Dim R&, xR As Range, xE As Range, i&, j&, k%
Range("G:G").EntireRow.Hidden = False
R = [g65536].End(3).Row
For i = R To 1 Step -1
    Set xR = Cells(i, "g")
    If xR = "合計" Then k = 1: Set xE = xR(0)
    If k = 0 Then GoTo i01
    If xR(0) <> "" Then
       If xR = "合計" Then MsgBox "品名已填滿, 沒有空白行": Exit Sub
       If xR(0) = "品名" Then MsgBox "品名全部空白": Exit Sub
       Exit For
    End If
i01: Next i
Range(xR, xE).EntireRow.Hidden = True
End Sub

TOP

回復 5# samwang
改成這樣,執行結果無誤
Arr = Range("b1:m" & [b65536].End(3).Row - 2)

回復 6# 准提部林
執行結果無誤

感謝二位,程式執行結果,都很理想!

TOP

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題