2016-10-06 66 views
-2

我有一個電子表格,像這樣:VBA:隱藏單元格值與目標行單元格值匹配的行嗎?

A  B   C   D   E   F  G 
12  Row1             Click to Hide 
12  Row2             Click to Hide 
5  Row3             Click to Hide 
4  Row4             Click to Hide 
12  Row5             Click to Hide 

當用戶點擊「點擊隱藏」我試圖隱藏其具有從該目標排匹配數列A

因此,所有的行例如,如果用戶在第1行的列G中單擊「單擊隱藏」。如果數字是12,那麼Row1,Row2和Row5會隱藏 - 因爲這些數字都是相同的。

但是,使事情複雜化,我不想隱藏目標行。這意味着Row1不會被隱藏,而只會隱藏Row2和Row 5。

這裏是我的代碼:

'Hide ROws 


If Target.Count > 1 Then Exit Sub 
    If Not Intersect(Target, Range("G:G")) Is Nothing And Target.Value = "Click to Hide" Then 
     valu = Cells(Target.Row, 1).Value 
     For i = 1 To ActiveSheet.UsedRange.Rows.Count 
      If Cells(i, 1).Value = valu Then 
       Cells(i, 1).EntireRow.Hidden = True 
      Else 
       Cells(i, 1).EntireRow.Hidden = False 
      End If 
     Next i 
     Target.EntireRow.Hidden = False 
    Else 
     Rows.Hidden = False 
    End If 

的代碼似乎並不奏效,它在我的電子表格的頂部,其是空的,沒有匹配的數字隱藏其他行。我不確定這是爲什麼,請有人告訴我我要去哪裏?

在此先感謝

+0

你爲什麼不要求從誰給你的代碼在你的[最後一個問題(人http://stackoverflow.com/questions/39883884/excel-指導vba-hide-all-rows-where-value-active-cell-offset-cell-value) –

+5

這也是你的第四個問題。其他三個人都有答案,唯一的反饋是那個人沒有工作。如果答案有效,那麼您應該通過點擊答案中的複選標記來標記爲正確。沒有反饋,那些會停止幫助的人。 –

回答

0
Sub HideRows() 
    BeginRow = 1 
    EndRow = 100 
    ChkCol = 1 

    For RowCnt = BeginRow To EndRow 
     If Cells(RowCnt, ChkCol).Value = 12 Then 
      Cells(RowCnt, ChkCol).EntireRow.Hidden = True 
     End If 
    Next RowCnt 
End Sub 
+0

請再次閱讀該問題。你的代碼會隱藏所有的行,包括他點擊的那一行。如果一行不是12行,它會隱藏12行;) –

+1

@DirkReichel,我不爲他做他的工作。我發佈代碼供他參考,因爲他已經發布了相同的問題3次。 – Josh

+1

*我沒有爲他做他的工作。*不是一個有效的答案。他的代碼存在錯誤,因爲我們不好,所以我們不會告訴他在哪裏。但是給出**根本不能解決問題的答案**可能會被拒絕。 –

相關問題