<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                [TOC] > Sat Apr 24 2021 01:05:10 GMT+0800 (GMT+08:00) WPS JS 宏編輯器默認禁止全局作用域表達式;這意味著你不能像平時那樣去寫 JS 代碼,在宏編輯器內一切都得部署在 function 內部。這點倒是跟 VBA 很像。這么做也是為了避免函數自動執行,本來宏都是被動的,允許 function 自動執行有違背宏設計的初衷。 ![](https://img.kancloud.cn/d7/cd/d7cd490962907851395990f1299b02b4_910x813.png) ## 禁止項開啟時 > 禁止項處于勾選狀態。 下面這種寫法會報錯: ```js const a = Worksheets.Item("Sheet1") function _m_sheetRename(){ a.Name = "匯總" } ``` ## 關閉禁止項后發生的詭異事件 但是如果你關閉了這兩個禁止項,那么你就要注意了: 1. 沒有調用的 function 也能執行(如果不帶參數的話)。 ```js const a = Worksheets.Item("Sheet1") // 能列入宏列表,可執行 function _m_sheetRename(){ a.Name = "匯總" } // 下面這個正常情況下并不會被執行(也不會被列入宏列表),雖然你看到宏列表里有_m_sheetRename ,但實際上它拿到的是前面帶function 的那部分。下面這個相當于白寫——驗證這個很簡單,改成帶參數的你就能看出來了。 _m_sheetRename() ``` ### 經測試(注意) 1. WPS JS宏只會匹配到帶 function 的函數本體,如果單獨在全局直接運行是不會被執行的,就跟上面的例子一樣。 > 但也有例外,偶爾會被執行(但它絕對不是被列入宏列表的那一個),一定要避免這種寫法。鬼知道它什么時候會給你來那么一下子。 2. 如果是回到 WPS 軟件界面(不在JS宏編輯器界面),點擊功能區菜單【JS宏】會彈出宏列表供你選擇,只會執行你要選擇的宏,其他的不會執行。 因此,解除禁止之后,函數的執行有點“失控”: ```js // 這里依然能執行 function _m_doAllFn(){ a() // function a(){...}依然可以單獨執行 b() // function b(){...}依然可以單獨執行 c() // function c(){...}依然可以單獨執行 } // 正常情況下不會被執行,但偶爾會執行。可能發生在編輯器過一遍上下文的時候,最好規避這種寫法。 _m_doAllFn() ``` > 關閉禁止項之后更符合大家平時的代碼行文習慣,但對代碼的嚴謹程度要求更高。 ### 可能的解釋 1. 即便關閉了禁止項,但貌似 JS宏 并沒有像常規那樣將宏文件從頭到尾過一遍。 2. 宏列表里列出的才是你能執行也是WPS能執行的,其他的它通通不認識(但函數間的調用、賦值是沒有問題的,僅僅影響全局——能不能被 WPS 識別為可執行宏)。 總之,大家記得不要自運行就好。 ## Tips 如果解除了禁止項,建議為希望只有調用時才執行的函數加上參數,或者將其賦值給變量。做成對象的方法、裝進Class都是可以的。 > 保持默認開啟禁止項就好,省得分享宏代碼的時候一大堆問題。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看