顯示具有 office 標籤的文章。 顯示所有文章
顯示具有 office 標籤的文章。 顯示所有文章

2025年2月1日 星期六

如何解決PERSONAL.XLSB (個人巨集活頁簿)無法自動載入的問題

 

PERSONAL.XLSB (個人巨集活頁簿)無法自動載入

最近我自己遇到一個問題, PERSONAL.XLSB (個人巨集活頁簿)無法自動載入, 試了各種方法都無法復原, 重裝office也無效(我使用的是365版本, 有登入, 會自動還原設定), 最後才發現原來是增益集出了問題, 以下為解決方法

  • 開啟 Excel
  • 選擇 「檔案」 >「選項」 >「增益集」
  • 「管理」 下拉選單中選擇 「停用項目」
  • 「執行」
  • 找到並 啟用「PERSONAL.XLSB」
  • 選擇 「檔案」 >「選項」 >「增益集」

    <img src="personal-xlsb-error.png" alt="如何解決 PERSONAL.XLSB 無法自動載入的問題">

    當我看到「停用項目」裡跟personal.xlsb一起被停用的是dropbox時, 我才想起來, 前陣子開啟excel時, 曾跳出dropbox的增益集出現問題, 問我要不要停用, 我想說都沒在用, 就按了停用, 沒注意到personal.xlsb一起被停用了。中間因為都沒用到VBA, 就忘了這件事, 直到昨天要新增一個VBA才發現大事不妙.......全部的巨集都消失了......我想, 有在用VBA的人, 若遇到跟我一樣的情況, 應該都會很焦慮, 所以決定把找到的解決方案寫下來, 希望不幸遇到跟我一樣狀況的人, 都能順利解決! (昨天的我, 差點就絕望了, 因為連重新安裝都無法解決 (T▽T))


    本次我遇到的問題不是因為personal.xlsb壞了或消失, 單純是在開啟excel時無法自動載入, 若是因為檔案出了問題, 就要改試其它方法了, 要如何知道檔案是否壞了或消失, 可以參考下面的介紹, 找出檔案, 試著開啟,若能成功打開, 表示檔案沒問題, 只是沒有自動載入

    不論什麼檔案, 時時記得備份是很重要的事唷! 辛苦做好的VBA, 記得要匯出備份! 才不會欲哭無淚


    接下來, 我們來簡介一下personal.xlsb

    1. 什麼是 PERSONAL.XLSB?
    2. 如何開啟開發人員頁籤?
    3. 如何開啟 PERSONAL.XLSB?
    4. 如何找到 PERSONAL.XLSB 的存放路徑?
    5. 如何「看到」PERSONAL.XLSB?
    6. 錄製巨集或撰寫 VBA 時,可存放於現用活頁簿 (This Workbook) 或個人巨集活頁簿 (PERSONAL.XLSB)
    7. 最最重要的備份工作!!! (匯出VBA)

    PERSONAL.XLSB (個人巨集活頁簿) 簡介

    1. 什麼是 PERSONAL.XLSB

    PERSONAL.XLSB 的主要用途是儲存使用者自訂的巨集,這些巨集可以在所有 Excel 活頁簿中使用,而無需每次重新建立。每次啟動 Excel 時,PERSONAL.XLSB 會自動載入, 並於關閉excel時,一起儲存

    2. 如何開啟開發人員頁籤?

    開發人員頁籤允許使用者存取 VBA 編輯器、巨集錄製等功能。

    如果你打開了 Excel ,卻找不到開發人員頁籤,可依以下步驟啟用:

    1.
    開啟 Excel,點選「檔案」 -> 「選項」。
    2.
    Excel 選項視窗中,選擇「自訂功能區」。
    3.
    在右側的「主要索引標籤」清單中,勾選「開發人員」。
    4.
    按確定,即可在功能區中看到「開發人員」頁籤。



    「開發人員」頁籤


    3. 如何開啟 PERSONAL.XLSB

    1. 打開 Excel 並按下 Alt + F11 進入 VBA 編輯器。
    2.
    在編輯器中,找到 VBAProject (PERSONAL.XLSB) 並展開。
    3.
    在該檔案中新增或編輯巨集。
    4.
    儲存並關閉 VBA 編輯器。

    Alt + F11 進入 VBA 編輯器


    📌 如果 Excel 從未錄製過個人巨集,將無法找到  VBAProject (PERSONAL.XLSB)。

    可嘗試錄製一個簡單的巨集,並選擇儲存於「個人巨集活頁簿」,即可自動建立personal.xlsb檔案。

    檔案 > 開發人員 >錄製巨集 > 下拉選擇儲存於「個人巨集活頁簿」 > 停止錄製

    此時再重覆上面的步驟, 就能找到VBAProject (PERSONAL.XLSB)了




    4. 如何找到 PERSONAL.XLSB 的存放路徑?

    PERSONAL.XLSB 通常存放於 `%APPDATA%\Microsoft\Excel\XLSTART\` 內。若該資料夾內沒有此檔案,則表示尚未錄製過個人巨集

        4.1 方法一: 快速開啟 PERSONAL.XLSB 所在位置

            1. Win + R 開啟「執行」視窗。
            2.
    輸入 `%APPDATA%\Microsoft\Excel\XLSTART\`,按 Enter
            3.
    該資料夾會自動開啟,可在其中找到 PERSONAL.XLSB

    按 Win + R 開啟「執行」視窗


        4.2 方法二: PERSONAL.XLSB 的完整路徑與檔案總管開啟方式

    📌完整預設路徑: 

    C:\Users\你的使用者名稱 \AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB

     

    📌 如何從檔案總管開啟此資料夾?

    1. 打開 Windows 檔案總管。

    2. 在地址欄輸入 %APPDATA%\Microsoft\Excel\XLSTART\

    3. Enter,即可直接進入該資料夾。


    5. 如何「看到」PERSONAL.XLSB

    PERSONAL.XLSB 預設為隱藏檔案,如需查看或編輯,可在 Excel 選擇 檢視 -> 隱藏/取消隱藏,然後選擇取消隱藏。

    當你想要直接刪除某些已錄製的巨集時,會出現以下錯誤訊息,此時需要取消隱藏才能刪除,或是按Alt + F11,從編輯區刪除



    6. 錄製巨集或撰寫 VBA 時,可存放於現用活頁簿 (This Workbook) 或個人巨集活頁簿 (PERSONAL.XLSB)

    以下是存放於兩者的比較:

    📌 若巨集存於現用活頁簿

    - 副檔名xlsm (含有巨集的 Excel 檔案

    - 開啟時會出現警告訊息「此檔案包含巨集,是否啟用?」

    - 安全性設定:若 Excel 設定為禁止啟用巨集,則需要手動允許巨集執行,在跳出上述警告訊息時,按確定啟用。

    📌 某些 VBA 巨集只能存放於現用活頁簿

    部分 VBA 巨集因為內容使用了 `ThisWorkbook`、參考特定工作表等指令,或受限於檔案鎖定機制,只能存放於執行它的活頁簿,無法在 PERSONAL.XLSB 或增益集中使用,只能存放於現用活頁簿

    7. 最最重要的備份工作!!!

    如何手動匯出巨集?

    1.  Excel 按下 Alt + F11 進入 VBA 編輯器。
    2. 
    在左側的 VBAProject 樹狀結構中,找到要匯出的巨集模組。
    3. 
    右鍵點擊該模組,選擇 匯出檔案 (Export File...)
    4. 
    選擇儲存位置,並輸入適當的檔名(副檔名為 `.bas`)。
    5. 
    若需在其他 Excel 活頁簿中使用,可透過 VBA 編輯器 -> 匯入檔案 (Import File...) 來載入該模組。


    祝福大家使用VBA愉快!!  ^_^


    #personal.xlsb無法自動載入

    #personal.xlsb

    #個人巨集活頁簿無法自動載入

    #個人巨集活頁簿




    2019年5月31日 星期五

    如何在Word文件中多處套用相同的資訊



    如何在Word文件中多處套用相同的日期


                                                                                                                    2019/06/01 by Amy Cheng
                                                                                                                          範例中使用的是word 2010


    以下的作法不是很標準的作法,只是可以達到我要的效果,例如在以下檔案中,一次更改所有表格的/:”內容

    word裡又無法像excel一樣直接”=”,可試試以下方法,檔案 =>資訊,因為我想填入的內容不是文件資訊的任何一項,所以我填在註解
     







    然後用插入註解的方式放到各表格的欄位中,未來如果我要變更日期,就只需要來更改註解的內容即可,插入註解的方法如下: 插入 => “快速組件 => 文件摘要資訊 => “註解






















    把三個表單都加入,之後只要更改第一個註解的內容,就可以三個日期都一起更新,這是因為我要的格式只有/,如果是//,也可以選擇插入發佈日期或其它資訊

























    另外,也可以用功能變數把這個註解插入各表格的欄位中,功能變數一樣是在快速組件的下拉選項裡,文件摘要資訊是在” DocProperty”,註解是”Comments”,若是在同一文件中,有很多種不同的內容需要同步更新,可以插入不同的功能變數,再用快速鍵一次更新








    功能變數一次更新的快速鍵先用Ctrl+A全選再按F9更新全部的功能變數


































    2016年5月5日 星期四

    excel自動填入工作日, 並跳過自訂的休假日


    excel有一個很好用的公式叫[WORKDAY], 可以簡單的自動填入工作日, 並跳過自訂的休假日


    用途 : 可用於排班 (例如每日的工作站), 或填表單 (例如只有工作日需要填寫的表單)等等


    預計完成的效果如下圖

    自動跳過週六及週日, 並且跳過預訂的公休日

    首先, 我們必須先在A2輸入起始的日期, 如果是今天, 可以用Ctrl + ; 快速填入今天的日期 (輸入法必須是英數, 如果是在中文輸入法的狀況下, 是無法使用這個快速鍵的), 本例輸入的是2016/05/05

    接著, 在A3填入公式,

    點選插入函數的按鍵


    選日期與時間, 點選WORKDAY函數


    Start_date: 
    就是開始日期, 也就是我們的A2

    Days:
    就是開始日期之後的第幾天, 因為我們是要從2016/5/5的隔天開始計算, 所以這裡我們輸入 1 , 但是如果我們要計算的是2016/5/5之後的第100天, 那就填入100

    Holidays:
    就是我們自訂的, 週六週日以外的特殊假日, 如果我們的表單單純只要排除六日, 那這裡可以空白不填, 因為我們在H2到 H4有自訂了幾天公休日, 因此我們輸入H2:H4

    但是因為我們之後需要下拉公式, 而公休日的表格位置是不變的, 所以我們需要用到 [絕對儲存格] 的概念, 在儲存格的位置加上 $ , 就表示之後下拉公式時, 這個參數是不變的, 因此在這裡, 我們要輸入的是$H$2:$H$4, 因為不管哪一天, 公休日就是這三天 (如果沒有加上$, 下拉公式時, 這裡會變成H3:H5, 那它對應的位置就不是我們放置公休日的表單位置了)

    Tip : 輸入公休日的位置時, 不能把標題 [公休日] 也加進去, 也就是說不能輸入 H1:H4, 因為H1是文字, 會造成公式錯誤, 無法計算

    以上參數輸入完畢之後, 按確定, 就完成了, 之後再把公式下拉複製即可



    2024/3/31回答下面網友的問題, 


    若是我們的固定假日不是週六、週日, 我們可以使用另一個函數WORKDAY.INTL, 多了一個參數"weekend"可以設定








    Start_date: 就是開始日期, 也就是我們的A1

    Days: 就是開始日期之後的第幾天, 若是隔天, 就填入1

    Weekend  :是指定何時為假日的數字。依照網友的需求, 指定週日為假日的數字為"11", 其它選項如下表


    Holidays: 就是我們自訂的, weekend以外的特殊假日


    2024/04/21回答下面網友的問題
    "如果是服務業沒有固定休假日,怎麼更改公式?"

    如果是每天都要上班, 只有特定日期休假的話, excel並沒有一個單獨的函數可以直接套用, 我所能想到的函數寫法如下:
    =IF(COUNTIF($C$2:$C$6,A2+1)>0,A2+2,A2+1)

    在這個函數組合裡, $C$2:$C$6是用來填寫休假日的範圍(C2到C6), 若您想填寫的日期較多, 例如C2到C20, 請將以上函數改為=IF(COUNTIF($C$2:$C$20,A2+1)>0,A2+2,A2+1)
    A2為班表起始日期, A3開始就放我上面寫的函數, 將函數往下拉即可



    關於這個函數寫法的解釋如下:
    =IF(COUNTIF($C$2:$C$6,A2+1)>0,A2+2,A2+1)

    先看內層的函數, 這一層的主要目的是要確認A2的隔天是否為休假日, COUNTIF($C$2:$C$6,A2+1)

    COUNTIF在Excel中用於計算"符合指定條件的儲存格數量"。它有兩個參數:

    1. 範圍: 要檢查的區域範圍,在這裡是$C$2:$C$6。$符號讓這個範圍固定不變,不會因為公式下拉而改變檢查範圍

    2. 條件: 要計數的條件,這裡是A2+1 (即A2的隔天, 2024/4/22)

    這個COUNTIF函數的作用是:在$C$2:$C$6範圍內,計算有多少個儲存格的值等於A2+1

    所以, 若在$C$2:$C$6範圍內, 有2024/4/22, 算出來的結果會>0, 就表示2024/4/22為休假日

    接著再套用外層的if函數, 若2024/4/22為休假日(>0)時, A3的日期就會用A2+2(即2024/4/23), 若不是, 則為A2+1(即2024/4/22)

    希望這樣有解決到您的問題



    2024/6/1回答下面網友的問題, 


    如果固定休週三及週日要如何改函數, 一樣可以用"WORKDAY.INTL"函數, 修改其中一個引數即可

    將起始日期打在A2, 再將以下函數寫入A3即可"=WORKDAY.INTL(A2,1,"0010001")"

    修改的引數及結果如下圖



    Weekend引數若加上雙引號時, 可以用來自訂自己要的固定工作日, 以7位數來代表一週的每一天, "0"代表工作日, "1"代表非工作日, 例如:

    "0000011"代表週六及週日為非工作日
    "0010001"代表週三及週日為非工作日

    特別留意的是, 記得要在字串的前後加上雙引號", 不然結果會回傳為錯誤



    2024/6/24回答下面網友的問題, 

    為何日期後打上(週X)後,後面會全變成錯誤? 

    因為沒看到檔案, 所以只能用猜的, 我猜測是因為直接用打字的方式打上"(週X)", excel若要讓函數計算正確, 要讓日期顯示星期幾, 要從格式去改, 不能直接打上去, 示範如下


    自訂儲存格格式中, 將格式設定為yyyy/m/d(aaa)yyyy/m/d(aaaa), 在excel中, "aaa"代表的日期格式為"週X", "aaaa"代表"星期X", 如下圖








    2024/9/13回答下面網友的問題, 

    如果已知預計工作天數,跟開始日期,要計算預計完成日期,公式需要扣掉工作天數中可能遇到的六日

    函數寫法如下:
    =WORKDAY.INTL(開始日期, 預計工作天數-1, 1)



    預計工作天數-1:減1是因為WORKDAY.INTL函數計算的是"之後"的工作日

    最後一個引數寫"1",  表示週末是星期六和星期日, 若有其它需求, 可參照下表修改

    另外, 跟上面其它函數的用法類似, 也可以用字串的方式選擇特定的休息日, 

    字串值長度為七個字元,字串中每個字元會代表一週內的一天,從星期一開始。 1 代表非工作日, 0 代表工作日

    例如固定休週三, 最後一個引數可以打0010000, 則函數的寫法就變成
    =WORKDAY.INTL(開始日期, 預計工作天數-1, 0010000)











    2016年5月2日 星期一

    excel移除重覆資料

    excel移除重覆資料

    有時我們會拿到很大量的資料需要分析, 但如果要一個一個用「眼力」去把重覆的資料移除, 真是很會很抓狂, 以下提供兩個簡便的方法, 可以讓大家節省眼力, 不過第二個方法在excel 2003的版本應該是無法使用, 我記得那個版本沒有這個功能, 但仍可使用第一個方法哦!


    測試資料如下圖


    方法一
    點選"資料"頁籤, 點選"進階篩選"

    點選「資料」頁籤, 點選「進階篩選」後, 會出現如下圖的對話框
    選擇「將篩選結果複製到其他地方」並勾選「不選重複的記錄」
    點選右邊的方塊, 可以選擇要把結果複製到哪個儲存格


    選擇要把結果複製到哪個儲存格
    完成!

    如果選擇在原有範圍顯示結果, 重覆的資料只是被藏起來而已 (如下圖), 並不會被刪除, 那麼, 要計算時, 還是要先把資料先用選擇性貼上的方法, 貼到別的地方去計算
    看左方的欄位可以發現, 它沒有連號, 重覆的數值只是被隱藏, 並沒有刪除

    接下來, 我們來看看方法二, 實在是太簡單了! 只能說office是愈來愈人性化了, 但是因為並不是所有的電腦都有新版的office可以用, 所以我還是介紹了方法一, 不然看完以下的方法, 肯定直接拋棄上面那個方法的

    點選「資料」頁籤, 點選「移除重複」, 就好了!!!  就好了!!!  就好了!!!












    因為有朋友說, 並不是所有人都看得懂細菌跟病毒的內容, 也需要一些比較大眾化的內容, 想了半天, 決定先寫了這篇excel的文章, 因為這個問題以前被問過很多次, 也遇過有人用了很複雜的公式來刪除重覆的資料, 但我偏好簡單的方法, 公式嘛.......太複雜的我也看不懂說......邏輯不夠好  :P