繁体   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