[英]Hiding Cells in Excel with a macro
如果滿足某個條件,我正在拼命地尋找excel宏的幫助來隱藏行。 我試圖輸入之前在其他問題答案中提供的所有代碼,只是無法讓該死的東西運行。
下面的代碼運行得非常好,沒有行隱藏部分
在生成模板之前,我需要以下內容進行計算
If range F30 to J30 is blank then rows 29 to 30 must be hidden
If range F33 to J33 is blank then rows 32 to 33 must be hidden
If range F30 to J33 is blank then rows 28 to 35 must be hidden
你能幫幫我嗎
Function RangeName(sName As String) As String
RangeName = Application.Substitute(sName, " ", "_")
End Function
Sub MergePrint()
Dim wsForm As Worksheet, wsData As Worksheet
Dim sRngName As String, r As Long, c As Integer
Set wsForm = Worksheets("Template")
Set wsData = Worksheets("DataSource")
With wsData.Cells(1, 1).CurrentRegion
For r = 2 To .Rows.Count
If Not wsData.Cells(r, 1).EntireRow.Hidden Then
For c = 1 To .Columns.Count
sRngName = wsData.Cells(1, c).Value
Range(RangeName(sRngName)).Value = wsData.Cells(r, c)
Next
wsForm.PrintOut
End If
Next
End With
End Sub
您可以使用公式標記要隱藏的行,然后使用SpecialCells返回需要隱藏的行,並將hidden
屬性設置為true或false。
在另一列(例如,列N)中添加以下公式:
=IF(LEN(CONCATENATE(F:F,G:G,H:H,I:I,J:J))=0,NA(),"")
您也可以使用VBA以編程方式放置此公式:
Range("N28:N35").Formula = "=IF(LEN(CONCATENATE(F:F,G:G,H:H,I:I,J:J))=0,NA(),"""")"
這將檢查單元格,如果它們全部為空,則返回#N/A
錯誤。
現在,您可以使用VBA中的SpecialCells函數來選擇要隱藏的行:
Cells.SpecialCells(xlCellTypeFormulas, xlErrors).EntireRow.Hidden = True
這是另一種方式。 我敢肯定有一種方法可以不使用這么多if語句......
Sub Test()
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
With Sheet1
If Application.WorksheetFunction.CountA(.Range("F30:J30")) = 0 Then
.Range("F29:J30").EntireRow.Hidden = True
Else
.Range("F29:J30").EntireRow.Hidden = False
End If
If Application.WorksheetFunction.CountA(.Range("F33:J33")) = 0 Then
.Range("F32:J33").EntireRow.Hidden = True
Else
.Range("F32:J33").EntireRow.Hidden = False
End If
If Application.WorksheetFunction.CountA(.Range("F30:J33")) = 0 Then
.Range("F28:J35").EntireRow.Hidden = True
Else
.Range("F28:J35").EntireRow.Hidden = False
End If
End With
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.