在Excel 2013中使用VBA读取隐藏列的问题

3

我目前在编写Excel 2013的宏时遇到了问题,涉及读取隐藏列。我试图利用A列作为唯一键的行,以允许我快速开发基于列A中键值的逻辑来隐藏和显示行。当我手动隐藏表格中的A列以进行视觉效果时,我就无法从该列中读取,也就是说,我的代码会返回错误。如果我显示该列,则代码执行清晰。提前感谢您的帮助!

Public Sub hideRow(findId As String, sheetName As String)
    Dim lastRow As Long
    Dim foundCell As Range
    Dim hideThisRowNum As Integer

    'Get Last Row
    lastRow = Worksheets(sheetName).Range("A" & Rows.Count).End(xlUp).Row

    'Find ID
    With Worksheets(sheetName).Range("a1:a1000") 'This needs to be A1 to AxlDown
        Set foundCell = Worksheets(sheetName).Range("A1:A" & lastRow).Find(What:=findId,     LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)
    End With

    'Get Row # to Hide

    hideThisRowNum = Val(foundCell.Row)

    'Hide row
    Worksheets(sheetName).Rows(hideThisRowNum).Hidden = True

    'Set Add To Action Plan = No
    Worksheets(sheetName).Range("G" & hideThisRowNum).Value = "No"

End Sub
1个回答

6
问题出在 .Find() 调用上。使用 LookIn:=xlValues 无法找到隐藏的单元格。将其改为 LookIn:=xlFormulas,应该就能解决问题了。

谢谢,问题解决了。由于我是VB的新手,你帮我省去了大约一小时的困惑。 - JeffreDodd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接