[英]Hide multiple range of rows based on differents cell
目前我有一個工作腳本,但它有點慢,因為當我實際上需要每個循環隱藏 58 行時它隱藏了 1 行 1 行,我知道可以隱藏一系列循環並成功工作,但僅適用於前 58 行,不要隱藏接下來的 58 行。總共有 1740 行,所以我最多隱藏 1740 次而不是 30 次。
所以腳本的目標是隱藏行以不打印工作表的這一部分,該工作表中總共可以打印 30 張紙。 每張紙是 58 行,決定是否要打印這張紙的是單元格 I3,對於第一張紙,是否有文本,或者它是否為空或有空格,下一張紙是 I63,然后是 I119,依此類推。
有問題的代碼是這個代碼,並且通過 1 隱藏第 1 行來工作:
Sub Hide_column_and_Row_FR_3_XX_Fiche_Erreur()
Dim NbreLigne As Integer
Dim hh As Variant
Dim zz As Variant
Dim tableau As range
Set wrkshtDoc = ActiveWorkbook.Worksheets("FR-3-XX_Fiche d'erreur")
Set tableau = wrkshtDoc.range("A1:L1740")
hh = 1
NbreLigne = tableau.Rows.Count
For k = 3 To NbreLigne
If tableau(k, 9) = " " Or tableau(k, 9) = Empty Then
For zz = 1 To 58
wrkshtDoc.Rows(hh).Hidden = True
hh = hh + 1
Next zz
Else
For zz = 1 To 58
wrkshtDoc.Rows(hh).Hidden = False
hh = hh + 1
Next zz
End If
k = k + 57
Next k
結束子
我嘗試了不同的方法來選擇多行,但我總是被“丟失的對象”擋在后面。 我可以在工作表中的單元格內編寫代碼,但 VBA 是另一回事......我試圖盡可能多地重用本文檔中已經存在的代碼來制作一些東西......
謝謝。
使用 Step 一次步進 58 行並使用 Resize 拾取所有 58 行:
Sub Hide_column_and_Row_FR_3_XX_Fiche_Erreur()
Dim NbreLigne As Long
Dim tableau As Range
Set wrkshtDoc = ActiveWorkbook.Worksheets("FR-3-XX_Fiche d'erreur")
Set tableau = wrkshtDoc.Range("A1:L1740")
NbreLigne = tableau.Rows.Count
Dim k As Long
For k = 3 To NbreLigne Step 58
tableau(k, 9).Resize(58, 1).EntireRow.Hidden = (tableau(k, 9) = " " Or tableau(k, 9) = Empty)
Next k
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.