簡體   English   中英

Excel VBA用於隱藏一個工作表中的單元格(如果它們匹配另一個工作表中的單元格)

[英]Excel VBA for hiding cells in one sheet if they match cells in another sheet

我是VBA的新手,在學習變量規則時遇到了問題(我認為這就是問題所在)。

我在電子表格中有兩個工作表。 如果工作表1的a列中的相同值,我需要編寫代碼來自動隱藏工作表2的一行。

這是我嘗試過的各種代碼之一:

Dim Sheet2Value As Variant
Dim Sheet1Value As Variant
'
Sheet2Value = Sheets("Sheet2").Range("A:A").Value
Sheet1Value = Sheets("Sheet1").Range("A:A").Value
'
If Sheet2Value = Sheet1Value Then
    Sheets("BMAC=N").EntireRow.Hidden = False
Else
    Sheets("BMAC=N").EntireRow.Hidden = True
End If

我收到類型不匹配錯誤,但我不確定為什么。 我選擇了變體,因為我不知道自己在做什么,但是excel中的兩列都將設置為“常規”。

有人能幫忙嗎? 我缺少什么概念?

非常感謝您的寶貴時間。

一些事情:

  1. 您不能比較整個列:

     Sheet2Value = Sheets("Sheet2").Range("A:A").Value 

    您需要遍歷單元格的集合,請參見: 2列的快速比較方法

  2. 您無法隱藏行而不定義要隱藏的范圍

     Sheets("BMAC=N").Range("Some_address").EntireRow.Hidden 
  3. 最后,我建議將您的代碼更改為最短的方法:

     Sheets("BMAC=N").Range("A1").EntireRow.Hidden = (value1<>value2) 

祝好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM