1

最初に表示された列の列番号を取得する方法はありますか?

したがって、列 A が非表示の
場合は 2 を返します。列 A と B が非表示の
場合は 3 を返します。A と C が非表示の場合は 2 を返します。

4

4 に答える 4

4

ループなし

更新:左端の列が非表示になっている場合は処理されませんでした。セルなしのテストが冗長である場合は、Tmdeanの短いソリューションが優れています

 Sub FirstNonHidden()
Dim rng1 As Range
Set rng1 = Cells.SpecialCells(xlCellTypeVisible)
If rng1.Column <> 1 Then
MsgBox rng1.Areas(1).Column
Else
MsgBox "No hidden cells"
End If
End Sub
于 2012-12-07T05:48:21.900 に答える
3
Sub test()

    Dim ColCounter As Integer

    ColCounter = 1
    Do While ColCounter > 0 And ColCounter < 66536
      If Sheet1.Columns(ColCounter).Hidden = False Then
           MsgBox (ColCounter)
           Exit Do
      End If
      ColCounter = ColCounter + 1
    Loop

End Sub
于 2012-12-07T05:34:16.463 に答える
3

最も簡単な方法はおそらく

Dim column_num As Long
column_num = ActiveSheet.UsedRange.SpecialCells(xlCellTypeVisible).Cells(1).Column

ただし、bhuang3のソリューションのように、ループを使用すると少し効率的ですが、もう少し簡単にすることができます。

Dim cursor As Range, column_num As Long
Set cursor = Range("A1")
Do Until cursor.ColumnWidth > 0
    Set cursor = cursor.Offset(0, 1)
Loop

column_num = cursor.Column
于 2012-12-07T05:55:23.203 に答える
0

これを試して

ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Offset(1, 0).End(xlToLeft).Column

編集

機能することの証明 ここに画像の説明を入力

于 2012-12-07T05:30:58.237 に答える