1

タイトルが説明しているように、私は Excel 2003 ワークブックを持っており、あるシートのいくつかの列を VBA で別のシートにコピーしています。私にはわかりませんが、誰かが元のシートでいくつかの列を隠しており、目的のシートのセルの処理方法が台無しになっています。

プログラムでどのように判断できますか:

  1. 非表示の列がある場合
  2. 非表示になっている列は?

ありがとう!JFV

4

5 に答える 5

10

の場合は、プロパティRangeを確認してください。Range.Hidden

次の MSDN のスニペットは、行/列を非表示/再表示する方法の良い例です。

 Worksheets("Sheet1").Columns("C").Hidden = True

If次のステートメントで値をテストすることもできます。

 For ColCounter = 1 To 10
      If Columns("C").Hidden = True Then
           Columns("C").Hidden = False
      End If
 Next
于 2009-07-06T18:32:58.980 に答える
1

表示されているファイルのみをコピーする場合は、表示されている列のみを範囲として選択するのが非常に便利なオプションの 1 つです。

これは、

Set visrng =rng.SpecialCells(xlCellTypeVisible)

これがあなたの場合に役立つかどうかはわかりませんでしたが、他の人にも役立つ可能性があるため、投稿することにしました.

于 2009-10-23T16:17:54.857 に答える
1

表示セルを別の範囲にコピーし、それぞれのセルの数を比較することは、範囲に非表示のセルがあるかどうかを判断する最も簡単な方法です。

例えば

Selection.SpecialCells(xlCellTypeVisible).Copy Destination:=VisRan

If Not Selection.Cells.Count = VisRan.Cells.Count Then
    MsgBox "Selection contains Hidden Cells"
End If
于 2012-09-14T22:10:23.113 に答える
0

次のような関数を使用して確認できます。

Function IsColumnHidden(column As Variant) as Boolean
    IsColumnHidden = False
    If Columns(column).ColumnWidth = 0.0 Then IsColumnHidden = True
End Function

0.0 の列の幅または行の高さは、範囲が非表示かどうかの指標です。

于 2009-07-06T18:37:51.403 に答える