首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Excel基于单元格值隐藏行

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

Stack Overflow用户
提问于 2015-10-13 22:00:05
回答 1查看 164关注 0票数 0

Alright...back与另一个Excel问题。

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

我需要在工作簿中使用800种化学品,只显示在较小的工作簿中显示的化学品。从技术上讲,我可以通过所有800种化学物质,并使用“过滤器”功能,取消所有我不想要的东西,但很明显,这将花费永远和肯定有一个更快的方法。

是我想要发生的事情:

在这两个工作簿中,CAS编号都是列之一。我已经复制了我希望显示在较大工作簿中的一个新列中的化学物质的所有化学文摘编号。我想做的是有一些VBA代码,基本上是这样的:“如果大工作簿中的CAS编号等于小工作簿中的CAS编号,那么显示那个化学物质。如果没有,就不要显示它。”

如果这很难理解,那我很抱歉,很难用语言表达。

代码语言:javascript
复制
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

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

EN

回答 1

Stack Overflow用户

发布于 2015-10-13 22:10:25

尝尝这个。

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

代码语言:javascript
复制
Public Sub Ryan_C()

    Dim rCrit As Range, rData As Range

    With Sheets("Sheet1").[a1]
        Set rData = .Resize(.Item(.Parent.Rows.Count).End(xlUp).Row, .Item(, .Parent.Columns.Count).End(xlToLeft).Column)
    End With

    With Sheets("Sheet2").[a1]
        Set rCrit = .Resize(.Item(.Parent.Rows.Count).End(xlUp).Row)
    End With

    rData.AdvancedFilter xlFilterInPlace, rCrit

End Sub

注:这假定800个化合物在Sheet1中,200个化学文摘社注册编号为Sheet2。根据需要编辑工作表名称。

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

注意:它还假设两个工作表顶部的CAS头匹配。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33113372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档