返回列表 上一主題 發帖

[發問] 如何以vba列出目前的一些設定,轉為code?

[發問] 如何以vba列出目前的一些設定,轉為code?

某excel檔,原本有做一些設定如下:
隱藏欄
隱藏列
顯示比例(不是100%)
凍結窗格
分割視窗
-----------
我將之全部取消,輸入data完,要回復原先之設定再存檔給別人。
問題來了,不但麻煩,而且也不記得先前之設定。
請問,如何寫vba,執行後,可以將上述之設定,產生在一個sheet中,我可以將之轉貼在vba的模組中,如此一來,當輸入data完後,只要執行該巨集,即可回復當初之設定。
感謝!
Symis

可是檔案很多耶...
每個檔還要慢慢找,有哪些隱藏...要花很久時間
所以才想到用程式幫忙
感謝您的回答
Symis

TOP

感謝GBKEE ,
a. 新增檢視畫面, 名稱: 檢視1
b. 執行: Ex_製定檢視()
c. 執行: Ex_開啟檢視()
我把代碼貼上vba後,執行的順序為: a,b,c
但是都沒東西出現?
請問正確執行的順序為何?
感恩!
Symis

TOP

原來自訂檢視也可以達到目的,不必用code記錄
感謝師兄!
Symis

TOP

有另一位網友JOHN的程式,提供您參考:
Public filterArray(), hidRowArray(), hidColArray() As Variant
Public condArray(1 To 3)

Sub mcCondLog()
Set lastC = Range("A1", ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
i = 0
Erase hidRowArray
Erase hidColArray
For Each c In lastC.Rows
If c.Hidden Then
ReDim Preserve hidRowArray(1 To i + 1)
hidRowArray(i + 1) = c.Row
i = i + 1
End If
Next c
i = 0
For Each c In lastC.Columns
If c.Hidden Then
ReDim Preserve hidColArray(1 To i + 1)
hidColArray(i + 1) = c.Column
i = i + 1
End If
Next c
With ActiveWindow
condArray(1) = .SplitColumn
condArray(2) = .SplitRow
condArray(3) = .Zoom
End With
End Sub


Sub mcRestorecCond()
With Range("A1", ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell))
.Rows.Hidden = False
.Columns.Hidden = False
End With
For i = 1 To UBound(hidRowArray())
If Not IsEmpty(hidRowArray(i)) Then Rows(hidRowArray(i)).Hidden = True
Next i
For i = 1 To UBound(hidColArray())
If Not IsEmpty(hidColArray(i)) Then Columns(hidColArray(i)).Hidden = True
Next i
With ActiveWindow
.SplitColumn = condArray(1)
.SplitRow = condArray(2)
.Zoom = condArray(3)
End With
End Sub
執行mcCondLog: 記錄目前的 隱藏欄/隱藏列/顯示比例/分割視窗條件
執行mcRestorecCond:恢復 隱藏欄/隱藏列/顯示比例/分割視窗條件
至於「凍結窗格」功能,因為VBA抓不到目前凍結的分配位置,因此無法作記錄與恢復。
Symis

TOP

        靜思自在 : 待人退一步,愛人寬一寸,就會活得很快樂。
返回列表 上一主題