繁体   English   中英

如何在VBA中查找最后可见的列号?

[英]how to find last visible column number in vba?

如何使用vba在工作表中查找最后一个可见列(未隐藏)?

我用下面的代码:

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

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

请尝试以下。 您可以使用xlCellTypeVisible指定隐藏单元格还是非隐藏单元格。

Sub counthidden()
MsgBox ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Columns.Count
End Sub

您可以使用SpecialCells来帮助:

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

事实证明这很简单。 我在寻找类似的问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM