2016-01-24 78 views
0

我想遍歷單元格並查找字母。如果它們包含該字母,則使用NumberFormat隱藏單元格。這工作,但我如何使這個循環toggeable,所以我可以隱藏/取消隱藏。搜索所選單元格並隱藏它們(如果它們包含字母)

Private Sub CommandButton1_Click() 
Dim rng As Range, cell As Range 
Set rng = Range("D5:F35,D43:F73,J5:L35,J43:L73,P5:R35,P43:R73,V5:X35,V43:X73,AB5:AD35,AB43:AD73,AH5:AJ35,AH43:AJ73") 
For Each cell In rng 
     If InStr(1, cell.Value, "A") > 0 Then cell.NumberFormat = ";;;" 
     If InStr(1, cell.Value, "B") > 0 Then cell.NumberFormat = ";;;" 
     If InStr(1, cell.Value, "C") > 0 Then cell.NumberFormat = ";;;" 
     If InStr(1, cell.Value, "D") > 0 Then cell.NumberFormat = ";;;" 
     If InStr(1, cell.Value, "F") > 0 Then cell.NumberFormat = ";;;" 
Next cell 
End Sub 

回答

0

嘗試...

Private Sub CommandButton1_Click() 

Dim rng As Range 
Dim cell As Range 
Set rng = Range("D5:F35,D43:F73,J5:L35,J43:L73,P5:R35,P43:R73,V5:X35,V43:X73,AB5:AD35,AB43:AD73,AH5:AJ35,AH43:AJ73") 

For Each cell In rng 
    If cell.Value Like "*A*" Or cell.Value Like "*B*" Or cell.Value Like "*C*" Or cell.Value Like "*D*" Or cell.Value Like "*F*" Then 
     cell.NumberFormat = ";;;" 
    End If 
Next cell 

End Sub 



Sub Macro1() 

If cell.NumberFormat = ";;;" Then 
    cell.NumberFormat = "General" 
End If 

End Sub 
+0

這隱藏了整行,我只是想隱藏單元格的內容像cell.NumberFormat =「;;;」確實。但如果它已經隱藏我想展示它。 – oppsig

+0

我改變了上面的代碼... –

1

我不知道你所說的「toggeable」 如果你要隱藏的一切意味着什麼,不管它包含什麼,那麼就設置.numberformat整個範圍的屬性給General。

如果你的意思是,當你刪除單元格中的目標的一個字母,它應該成爲取消隱藏,那麼試試下面這個宏:

編輯編輯補充什麼,我覺得你切換的意思。

========================================

Option Explicit 
Option Compare Binary 
Private Sub CommandButton1_Click() 
Dim rng As Range, cell As Range 
Set rng = Range("D5:F35,D43:F73,J5:L35,J43:L73,P5:R35,P43:R73,V5:X35,V43:X73,AB5:AD35,AB43:AD73,AH5:AJ35,AH43:AJ73") 

Application.FindFormat.NumberFormat = ";;;" 
Set cell = rng.Find(what:="*", searchformat:=True) 
    If Not cell Is Nothing Then 
     rng.NumberFormat = "General" 
     Exit Sub 
    End If 

For Each cell In rng 
     If cell.Value Like "*[ABCDEF]*" Then 
      cell.NumberFormat = ";;;" 
     Else 
      cell.NumberFormat = "General" 
     End If 
Next cell 
End Sub 

====================================

+0

通過可切換我想隱藏和取消隱藏同一個按鈕。 Else語句下的命令cell.NumberFormat =「General」不會再次取消隱藏。但If語句按照它應該的方式工作。 – oppsig

+0

@oppsig我已經添加了代碼給我的答案,應該完成我認爲你的意思是「可切換」。如果情況並非如此,請以更具體的信息來澄清。 –

+0

@oppsig'Else'下的語句被設計爲取消隱藏單元格,如果您應該刪除該單元格中的關鍵字母。你是否寫道它不能在你的系統上工作?如果沒有,請具體說明你如何測試它。 –

0

數字格式的最後一部分是文本 - 只需從自定義數字格式中刪除該部分即可隱藏/顯示文本。

Sub HideText() 

    Dim rng As Range 
    Set rng = ThisWorkbook.Worksheets("Sheet1") _ 
     .Range("D5:F35,D43:F73,J5:L35,J43:L73,P5:R35,P43:R73,V5:X35,V43:X73,AB5:AD35,AB43:AD73,AH5:AJ35,AH43:AJ73") 

    If rng.NumberFormat <> "#,##0;-#,##0;#,##0;" Then 
     rng.NumberFormat = "#,##0;-#,##0;#,##0;" 
    Else 
     rng.NumberFormat = "#,##0;-#,##0;#,##0;@" 
    End If 

End Sub 
相關問題