grace 發問時間: 電腦與網際網路軟體 · 6 年前

EXCEL VBA 日期的顯示與隱藏

請各位vba高手幫忙:

想做整年度的資料排程.但一整年資料攤開來拖拉又沒效率.想透過USERFORM2表單在J6:ABK6範圍作輔助資料.或是其他方式設計一個可以隱藏與顯示的選項.方便點選.以達到靈活性.

謝謝~

檔案位置如下

http://www.FunP.Net/881439

3 個解答

評分
  • 6 年前
    最佳解答

    <參考檔>:

    http://www.funp.net/653900

    2014-12-01 18:13:23 補充:

    EXCEL VBA.指定資料〔月份〕範圍,執行〔欄〕的顯示或隱藏

                             <.准提部林.>

    ---------------------------------

    ■月份.公式:

     BT2:

     =IF(BT7="","-",FIND(TEXT(BT7,"mm."),"..01.02.03.04.05.06.07.08.09.10.11.12.")/3)

     

    ■程式碼:

     Sub 顯示隱藏()

     Dim ChkBox As CheckBox, ObjNm$

     ObjNm = Application.Caller

     Set ChkBox = ActiveSheet.CheckBoxes(ObjNm)

     Application.ScreenUpdating = False

     On Error Resume Next

     With Rows(2)

       .Replace Right(ObjNm, 2), "||", Lookat:=xlPart

       .SpecialCells(xlCellTypeFormulas, 16).EntireColumn.Hidden = 1 - ChkBox.Value

       .Replace "||", Right(ObjNm, 2)

     End With

     End Sub

     

    ■說明: 

     ObjNm = Application.Caller 

     依執行巨集的〔物件名稱〕,取其〔右2字元〕為〔月份〕, 

     例如:以〔核取方塊_02〕執行巨集,將取得〔02〕兩字,

     

     再將〔公式〕中的 "02" 取代成 "||"

     Rows(2).Replace Right(ObjNm, 2), "||", Lookat:=xlPart

     公式將暫時改變為:

     =IF(BT7="","-",FIND(TEXT(BT7,"mm."),"..01.||.03.04.05.06.07.08.09.10.11.12.")/3)

     

     此時〔02〕月份將因公式 FIND 不到 "02" 而產生〔錯誤值〕,

     繼而使用〔編輯→到→特殊→公式→錯誤值〕取得02月的欄範圍,

     Rows(2).SpecialCells(xlCellTypeFormulas, 16)

     

     最後執行欄範圍的顯示或隱藏,再將 "||" 取代回月份。

    ---------------------------------

    <範例檔>下載:

    檔案名稱:20141125a01(選定月份顯示隱藏).rar

    下載位址:http://www.funp.net/653900

    --------------------------------- 

    • Commenter avatar登入以對解答發表意見
  • 6 年前

    知道有這方法.但沒想到.我居然問了一個龜毛的問題.......真糟糕~

    2014-11-25 23:52:18 補充:

    謝謝准大再次幫忙.設計出來的東西.操作起來簡單俐落.也深具巧思.相當好用.但我程度不夠.語法還是沒辦法完全了解.需要加把勁才行....

    再次謝謝你.感恩~

    2014-12-01 16:47:44 補充:

    准大請上回答區.要選你為最佳解答.謝謝~

    • Commenter avatar登入以對解答發表意見
  • 小嵐
    Lv 4
    6 年前

    新版Excel有群組功能

    以整年資料可以設定月份群組

    以及月份裡面的星期作為第2層群組

    方便又快速

    • Commenter avatar登入以對解答發表意見
還有問題?馬上發問,尋求解答。