首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在vba中找到最后可见的列号?

如何在vba中找到最后可见的列号?
EN

Stack Overflow用户
提问于 2016-04-15 01:00:45
回答 3查看 2.9K关注 0票数 3

如何使用vba在工作表中找到最后一个可见列(而不是隐藏列)?

我使用了以下代码:

代码语言:javascript
运行
复制
Dim LastColumn As Integer
If WorksheetFunction.CountA(Cells) > 0 Then
            'Search for any entry, by searching backwards by Columns.

LastColumn = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

MsgBox LastColumn
End If

但它给了我最后一个列号。我要最后一个可见的列号。有什么帮助吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-15 01:09:46

试试下面的。可以使用xlCellTypeVisible指定隐藏单元格和非隐藏单元格。

代码语言:javascript
运行
复制
Sub counthidden()
MsgBox ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Columns.Count
End Sub
票数 2
EN

Stack Overflow用户

发布于 2016-04-15 01:11:00

您可以使用SpecialCells来帮助:

代码语言:javascript
运行
复制
Dim rng1 As Range
Dim rng2 As Range

On Error Resume Next
Set rng1 = ActiveSheet.UsedRange.SpecialCells(xlVisible)
On Error GoTo 0

If Not rng1 Is Nothing Then
    Set rng2 = rng1.Find(What:="*", After:=rng1.Cells(1), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious)
    MsgBox rng2.Column
End If
票数 3
EN

Stack Overflow用户

发布于 2017-10-10 04:28:24

令人惊讶的是,事实证明它很简单。我在找一个类似的问题。

代码语言:javascript
运行
复制
Sub lastVisibleColumn()
' This should select the last fully visible column on the active window

' This part selects the current top left visible cell regardless of zoom
    ActiveWindow.VisibleRange.Select
    ActiveCell.Offset(0, 0).Select
    startColumn = ActiveCell.Column

' Large scroll right 1 page
    ActiveWindow.LargeScroll ToRight:=1
    ActiveWindow.VisibleRange.Select

' Select the top left cell again, -1 column to get to
'the previous scrollable page
    ActiveCell.Offset(0, -1).Select
    ActiveWindow.LargeScroll ToLeft:=1
    lastColumn = ActiveCell.Column
End Sub
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36636589

复制
相关文章

相似问题

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