2010-02-08 88 views
-1

我需要編寫一個excel宏,以便在(a:a)的範圍內,如果有任何值爲Closed,那麼應該隱藏整行。如何做...Excel宏

+0

嘗試一個Excel論壇 – 2010-02-08 14:29:11

+0

你能澄清你的問題有點 - ?你的意思是具有WOR單元格d'關閉'了嗎? – monojohnny 2010-02-08 14:29:11

+0

嘗試使用Sub測試()Dim a As Range 如果不是a(範圍)沒有那麼範圍(「A:A」)。EntireColumn.Hidden = True End Sub' – 2017-05-15 17:42:42

回答

1

我不能告訴你究竟該怎麼做,因爲我不知道什麼是封閉的細胞,但讓我們見面給你一些關於如何找到它的提示。

當我想在一個已編程的excel宏中執行某些操作並且我不知道代碼時,我創建了一個記錄宏,然後分析代碼。在你的情況下,我會做的是我會記錄一個宏,我關閉一個單元格(並取消關閉以檢查在兩種情況下會發生什麼),然後選擇一行並隱藏它。它可以是單元格關閉的行。停止宏,並檢查代碼。它將按順序排列,因此通常很容易找到所需的代碼行。

僞Excel中的代碼看起來應該是這樣

 
For row = 1 to MaxRow 
    For col = 1 to MaxCol 
     If Cells(row,col).IsClosed Then 'Replace with the code that the macro use to check if closed 
      Rows(row).Hide 'Replace with the code that the macro uses to hide the row 
     End If 
    Next col 
Next row 

希望幫助。

編輯:如果它與某個字符串值有關(例如當它寫得很近),那麼您定義一個範圍並檢查其值(例如:Range(「A1」)。值應該給出單元格A1

0

目前尚不清楚什麼是「閉合」意思 這只是看你正在使用的工作表,並沒有像@DavidBruenelle那樣限制範圍大小(這是更好的做法),但是這個替代宏可能是簡單的讓你瞭解

Sub hideClosed() 
For Each cell In Range("A:A") 
If cell = "Closed" Then Rows(cell.Row()).EntireRow.Hidden = True 
Next 
End Sub