正如標題所解釋的,我有一個Excel 2003工作簿,並且正在將一個表格的多個列複製到另一個VBA中。我不知道,有人在源表中隱藏了幾列,並且它弄糟了我如何處理目標表格中的單元格。如何確定在Excel中複製時是否存在隱藏列VBA
我怎樣才能programmically確定:
- 是否有隱藏的列隱藏的列
- ?
謝謝! JFV
正如標題所解釋的,我有一個Excel 2003工作簿,並且正在將一個表格的多個列複製到另一個VBA中。我不知道,有人在源表中隱藏了幾列,並且它弄糟了我如何處理目標表格中的單元格。如何確定在Excel中複製時是否存在隱藏列VBA
我怎樣才能programmically確定:
謝謝! JFV
對於Range
,檢查Range.Hidden
property.
從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
您可以通過使用一個功能象檢查:
Function IsColumnHidden(column As Variant) as Boolean
IsColumnHidden = False
If Columns(column).ColumnWidth = 0.0 Then IsColumnHidden = True
End Function
列寬或0.0行高是的範圍是否是隱藏的指示。
如果您只想複製可見文件,那麼選擇一個相當不錯的選項即可僅選擇可見列作爲範圍。
這可以通過
Set visrng =rng.SpecialCells(xlCellTypeVisible)
做這是我不太清楚,如果這是你的情況是有用的,但我決定將它張貼,因爲它可能是有用的人。
複製可見單元格到另一個範圍,然後比較每個細胞的數量可能是最簡單的方法,以確定是否有在範圍隱藏單元格
如
Selection.SpecialCells(xlCellTypeVisible).Copy Destination:=VisRan
If Not Selection.Cells.Count = VisRan.Cells.Count Then
MsgBox "Selection contains Hidden Cells"
End If
也應設置某種一個標誌正確的條件部分col隱藏設置爲false ...也許一個數組的元素0 = col A,元素1 = col B等等 – CheeseConQueso 2009-07-06 18:37:11
@Cheese:我只是想提供一個示例遍歷並檢查.Hidden狀態 - 有許多方法可以改進片段(使用For Each Column而不是計數器,用於實例)。 – 2009-07-06 18:43:51
@scag是啊我想到......並沒有試圖打擊你或任何東西,只是在解決他的問題的第二部分 - ps,你的姓氏是非常熟悉的...西埃塞克斯高中?我來自Fairfield ... – CheeseConQueso 2009-07-06 18:45:11