Note: The other languages of the website are Google-translated. Back to English

如何根據Excel中指定的單元格值隱藏或取消隱藏某個形狀?

實際上,可以根據指定單元格的值來隱藏或取消隱藏某個形狀。 以下方法可以為您提供幫助。

使用VBA代碼根據指定的單元格值隱藏或取消隱藏某種形狀


使用VBA代碼根據指定的單元格值隱藏或取消隱藏某種形狀

例如,您要在將數字1輸入到單元格A1中時取消隱藏某個形狀,或者如果單元格A1是其他值則隱藏該形狀。 請運行以下VBA代碼以實現它。

1.右鍵單擊包含要隱藏或取消隱藏的形狀的圖紙選項卡,然後單擊 查看代碼 從右鍵單擊菜單中。

2.然後 Microsoft Visual Basic for Applications 彈出窗口。 請複制以下VBA代碼並將其粘貼到 推薦碼 窗口。

VBA代碼:根據指定的單元格值隱藏或取消隱藏某種形狀

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Row = 1 And Target.Column = 1 Then _
        Me.Shapes("Oval 6").Visible = (Cells(1, 1).Value = 1)
End Sub

筆記:在代碼中:

1) 行= 1列= 1 表示位於第一行和第一列的特定單元格,Cells(1,1)是相應的單元格A1。
2) 值= 1,數字1是您要基於其顯示形狀的特定值。
3)“橢圓形6”是特定形狀的名稱。

您可以根據需要更改它們。

3。 按 其他 + Q 同時關閉按鍵 Microsoft Visual Basic for Applications 窗口。

從現在開始,將數字1輸入到單元格A1中時,“橢圓6”的形狀將被隱藏。 但是,如果您在單元格A2中輸入其他值(例如數字1),則會立即隱藏“橢圓6”形狀。


相關文章:


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (11)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
只要輸入的值是數字,這對我很有用。 我需要它來處理 ABC 等字母
網站主持人對此評論進行了最小化
您可以改用字母,只需在任一側添加 "。例如 Me.Shapes("Oval 6").Visible = (Cells(1, 1).Value = "A")
網站主持人對此評論進行了最小化
如果我想添加兩個值作為輸入,例如:Eg Me.Shapes("Oval 6").Visible = (Cells(1, 1).Value = "A" Or "B"),怎麼樣?
網站主持人對此評論進行了最小化
Me.Shapes("圓角矩形 2").Visible = (Cells(1, 1).Value = "A" 或 Cells(1, 1).Value = "B")
網站主持人對此評論進行了最小化
我是 VBA Excel 的新手。 我正在使用這段代碼,我想優化它。 如果值為 1,則此代碼使活動單元格上的形狀可見,其他值將其隱藏。 範圍包括 J13:AC161。 如果我將使用下面的代碼,它將花費我更多的代碼行。 任何幫助都感激不盡。

Private Sub Worksheet_Change(ByVal Target As Range)
如果 ActiveSheet.Range("E13").Value = 1 那麼
ActiveSheet.Shapes("rt1").Visible = True
其他
ActiveSheet.Shapes("rt1").Visible = False
如果結束

如果 ActiveSheet.Range("F13").Value = 1 那麼
ActiveSheet.Shapes("rt2").Visible = True
其他
ActiveSheet.Shapes("rt2").Visible = False
如果結束

如果 ActiveSheet.Range("G13").Value = 1 那麼
ActiveSheet.Shapes("rt3").Visible = True
其他
ActiveSheet.Shapes("rt3").Visible = False
如果結束

如果 ActiveSheet.Range("H13").Value = 1 那麼
ActiveSheet.Shapes("rt4").Visible = True
其他
ActiveSheet.Shapes("rt4").Visible = False
如果結束

如果 ActiveSheet.Range("I13").Value = 1 那麼
ActiveSheet.Shapes("rt5").Visible = True
其他
ActiveSheet.Shapes("rt5").Visible = False
如果結束

如果 ActiveSheet.Range("J13").Value = 1 那麼
ActiveSheet.Shapes("rt6").Visible = True
其他
ActiveSheet.Shapes("rt6").Visible = False
如果結束
...

END SUB
網站主持人對此評論進行了最小化
美好的一天,
您的意思是要顯示或隱藏許多基於 J13:AC161 範圍內的單元格的指定形狀,並帶有簡短的代碼?
網站主持人對此評論進行了最小化
2問題:

1. 我似乎無法讓這段代碼運行,而且我不明白為什麼...複製並粘貼它的原樣...幫助!


2. 我如何為 Shapes.Range(Array("Rounded Rectangle 1")) 之類的形狀更改它
網站主持人對此評論進行了最小化
嗨Gus,
您必須在操作中遺漏一些東西。
假設您的形狀名稱為“圓角矩形 1”,請將以下代碼複製到工作表代碼窗口中(此工作表應包含指定的形狀“圓角矩形 1”)。
從現在開始,只有在 A1 單元格中輸入數字 1 才能顯示形狀“圓角矩形 1”。 如果您輸入其他內容,該形狀將被隱藏。

Private Sub Worksheet_Change(ByVal Target As Range)
如果 Target.Row = 1 並且 Target.Column = 1 那麼 _
Me.Shapes("圓角矩形 1").Visible = (Cells(1, 1).Value = 1)
END SUB
網站主持人對此評論進行了最小化
你漏掉了“:”
網站主持人對此評論進行了最小化
本文沒有給出任何關於如何獲得形狀名稱的提示。

我已經檢查了 VBA 中的名稱管理器和對像管理器以及上下文菜單 - 沒有形狀的“屬性”菜單。

那麼,形狀名稱在哪裡?
網站主持人對此評論進行了最小化
嗨科南,
選擇形狀時,形狀名稱將顯示在工作表的名稱框中。 帶來不便敬請諒解。
查看附件 (1 / 5)
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護