看板 Office 關於我們 聯絡資訊
軟體:Excel 版本:2010 在工作表上實際寫了一些大型的公式 在表上可以正常計算 但卻發現好像到某個長度之後 錄製出來的巨集就無法執行 以下為例子: 表上的公式(陣列函數) {=SUM(INDIRECT("測試!A"&COUNTA(測試!A:A)&":"&"B"&COUNTA(測試!B:B)))* SUM(INDIRECT("測試!A"&COUNTA(測試!A:A)&":"&"B"&COUNTA(測試!B:B)))* SUM(INDIRECT("測試!A"&COUNTA(測試!A:A)&":"&"B"&COUNTA(測試!B:B)))* SUM(INDIRECT("測試!A"&COUNTA(測試!A:A)&":"&"B"&COUNTA(測試!B:B)))} 當然,這是為了測試的例子,本身公式沒有任何意義 實際錄製時 VBA會錄製出: Selection.FormulaArray = _ "=SUM(INDIRECT(""測試!A""&COUNTA(測試!C)&"":""&""B""&COUNTA(測試!C[1])))* SUM(INDIRECT(""測試!A""&COUNTA(測試!C)&"":""&""B""&COUNTA(測試!C[1])))* SUM(INDIRECT(""測試!A""&COUNTA(測試!C)&"":""&""B""&COUNTA(測試!C[1])))* SUM(INDIRECT(""測試!A""&COUNTA(測試!C)&"":""&""B""&COUNTA(測試!C[1])))" 在相乘二到四次時,錄製出來的巨集都可以執行; 但是到了相乘五次時,跑巨集會跳出錯誤訊息 錯誤訊息為: 無法執行階段錯誤 '1004': 無法設定種類 Range 的 FormulaArray 屬性 請問這樣除了縮短公式之外,會有解決的方式嗎? 先謝謝各位 -- ┌─────────────────────────────┐ │就這樣,終於到了啟程的日子。 │ │和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。│ │也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 │ └─────────────────石田裕輔《不去會死!》─┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.22.223.4
bulldog:VBA應該沒有陣列方法,請用矩陣乘法處理... 07/18 22:49
先謝謝答覆,因為我一直找不到陣列乘法的範例 不曉得能不能稍微說明一下或是 有網站連結嗎? (我VBA都是看內建說明文件跟網路自學 @_@) ※ 編輯: foolkids 來自: 211.22.223.4 (07/19 09:00)
bulldog:我也是XD, 矩陣乘法的話用MMult, 或者寫迴圈去處理吧 07/19 13:22