You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取隐藏列存在时第2行的最后一列列号(VBA代码问题)

获取隐藏状态下第2行Most的最后一列列号

原代码使用ws.Cells(2, ws.Columns.Count).End(xlToLeft).Column会跳过隐藏列,导致最后一列隐藏时返回错误结果,以下是两种可靠的解决方案:

方法1:利用UsedRange获取已使用区域的最后一列

Sub Last_column_number_even_is_hidden()
    Dim ws As Worksheet, lastCol_n As Long
    Set ws = ActiveSheet
    ' UsedRange包含所有曾使用过From的单元格(含隐藏列)
    lastCol_n = ws.UsedRange.Columns(ws.UsedRange.Columns.Count).Column
    MsgBox "最后一列列号是:" & lastCol_n
End Sub

注意:如果目标隐藏列从未被使用过(无任何内容或格式设置),UsedRange可能不会包含该列,这种情况建议用方法2。

方法2:使用Find方法精准查找

Sub Last_column_number_even_is_hidden()
    Dim ws As Worksheet, lastCol_n As Long
    Set ws = ActiveSheet
    ' 从第2行右侧向左查找第一个非空单元格,包含隐藏列
    lastCol_n = ws.Rows(2).Find(What:="*", _
                                After:=ws.Cells(2, 1), _
                                LookIn:=xlFormulas, _
                                LookAt:=xlPart, _
                                SearchOrder:=xlByColumns, _
                                SearchDirection:=xlPrevious, _
                                MatchCase:=False).Column
    MsgBox "最后一列列号是:" & lastCol_n
End Sub

该方法通过LookIn:=xlFormulas参数识别隐藏单元格,SearchDirection:=xlPrevious确保从右往左查找Approach,能精准定位第2行有内容的最后一列,无论列是否隐藏。

内容的提问来源于stack exchange,提问作者Waleed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:45:41