使用Excel VBA基于单元格值隐藏行

时间:2015-10-13 22:00:06

标签: excel excel-vba vba

好吧......再次提出另一个Excel问题。

这一次,我有一本Excel工作簿,它具有800种化学品/化合物的化学和物理特性。我有另外一本有大约200种化学物质的工作簿。

我需要在工作簿中使用800种化学品进行操作,只显示较小工作簿中显示的化学品。我可以在技术上检查所有800种化学品并使用"过滤器"能够取消选择我不想要的东西,但显然这将是永远的,而且肯定会有更快的方式。

继续我认为需要发生的事情:

在两个工作簿中,CAS编号都是其中一列。我已将我 想要 的化学品的所有CAS编号复制到较大工作簿中的新列中。我想要做的是有一些基本上这样说的VBA代码:"如果较大工作簿中的CAS号等于较小工作簿中的CAS号,则显示该化学品。如果没有,则不要显示它。

如果这很难理解,那么我道歉,很难说出来。

This is what I started doing:

    Sub HideRows()

    BeginRow = 3
    EndRow = 802
    ChkCol = 3

    For RowCnt = BeginRow To EndRow

        If Cells(RowCnt, ChkCol).Value = "A3" Then
            Cells(RowCnt, ChkCol).EntireRow.Hidden = True
        Else
            Cells(RowCnt, ChkCol).EntireRow.Hidden = False
        End If
        Next RowCnt


    End Sub

我不认为这是对的。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

试试这个。

将此例程放在标准代码模块中。

{
   "FooBar": [{"Baz":"inga","Bar":"quux"}]
}

注意:这假设在Sheet1中有800种化合物,而在Sheet2中有200种CAS登记号。根据需要编辑工作表名称。

注意:这假设两个工作表中的数据都在单元格A1中开始。

注意:它也承认CAS标题与两页之首相匹配。