0

範囲変数「rng」があります。rng を次の交点に設定する必要があります: (1) 最初の列を除くシートの usedrange、および (2) 列番号 6、たとえば

現在、私は持っています:

Set rng = Intersect(.UsedRange, .Columns(6)).SpecialCells(xlCellTypeVisible)
' Because the range is filtered and i only need to select visible cells

しかし、これはヘッダー行も含む列を返します。列の数字だけが必要です。

(1)それを行うための簡単な関数/メソッド/プロパティはありますか?(2) この範囲のサイズを見つけるにはどうすればよいですか? rng に複数のセルがある場合でも、rng.rows.count は常に 1 を返します。rng.count を使用する必要がありますか? 違いは何ですか?

どうもありがとうございました、

アル

4

2 に答える 2

2

あなたはすでに回答を受け入れているようですが、ヘッダー行が含まれていないという要件にどのように回答するかはわかりません。これが私の解決策です。また、行数を取得する方法に関する質問2にも回答します。

Sub GetRangeAndCountRows()
Dim rng As Excel.Range
Dim rngArea As Excel.Range
Dim RowCount As Long

With ActiveSheet
    Set rng = Intersect(.UsedRange.Resize(.UsedRange.Rows.Count - 1, .UsedRange.Columns.Count).Offset(1, 0), .Columns(6)).SpecialCells(xlCellTypeVisible)
    Debug.Print rng.Address
    For Each rngArea In rng.Areas
        RowCount = RowCount + rngArea.Rows.Count
    Next rngArea
    Debug.Print RowCount
End With
End Sub
于 2012-06-28T19:38:39.877 に答える
1

もちろん、上記のティムのコメントはうまく機能します。

この答えは、上記のコードに沿ったものであり、読みやすいかもしれません。

.UsedRangeの代わりに.UsedRange.Offset (,1)を追加して、Interesect 式の UsedRange の最初の列を無視します。

Set rng = Intersect(.UsedRange.Offset(,1), .Columns(6)).SpecialCells(xlCellTypeVisible)
于 2012-06-28T18:25:47.597 に答える