看板 Office 關於我們 聯絡資訊
軟體:Office Excel 版本:2010 選擇一張工作表時,若要針對A1進行填值,VBA可寫── Range("A1") = 1 但是當選擇多張工作表時,若要針對每張工作表的A1進行填值,VBA要寫成── Range("A1").Select: Selection = 1 因為要Select一範圍就要先Activate該活頁簿、Active該工作表,會讓運行變慢, 不知道有沒有其他寫法可以類似只填一張工作表那樣簡潔又不需Select呢? 謝謝! -- ┌─────────────────────────────┐ 就這樣,終於到了啟程的日子。 和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。 也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 └─────────────────石田裕輔《不去會死!》─┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.249.149.121 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1429758563.A.39F.html
soyoso: 查了一下無查到如一張工作那麼簡易的寫法;運行變慢方面是 04/23 12:01
soyoso: 否以application.enableevents的部分下手看看呢? 04/23 12:02
foolkids: 謝謝蘇大! 最近被效能優化搞到有點頭大 沒有個比較準確 04/23 13:05
foolkids: 的原則 Q_Q 04/23 13:05
soyoso: 準確的原則是指? 04/23 13:26
soyoso: 優化上是否還是在activate時的自動運算而再調整呢? 04/23 13:30
很多,例如說我以為陣列處理最快,所以把一些大範圍的複製貼上改用陣列取代, 結果執行時間反而變長... 還有Find、Match運算,網路上查到是Match比較快, 結果我改寫自己用Find寫成的東西後,執行時間也是變長了... 現在我都要透過測試執行時間,才能知道該用哪種程序才會將效能優化,有點苦惱 ※ 編輯: foolkids (60.249.149.121), 04/23/2015 15:12:39
EGsux: cell(1,1).value=1 04/23 19:19
EGsux: 我一直都直接wb.ws.cell我寫囧 04/23 19:20
EGsux: 直接在ws用陣列表示? 04/23 19:22
EGsux: 如非必要不要用select activate等東西阿直接在code寫入數 04/23 19:26
EGsux: 值 04/23 19:26
foolkids: 直接在code寫數值?您是說跑迴圈嗎? 04/24 00:00
foolkids: 我舉例的狀況是多張工作表的A1都要輸入1,不知有何好方 04/24 00:02
foolkids: 法? 04/24 00:02