看板 Office 關於我們 聯絡資訊
軟體:Office Excel 版本:2010 目前有設定巨集在切換工作表A時會觸發,巨集目的也很單純,如下: --------------------------------------------------------------------------- Private Sub Worksheet_Activate() '選擇此活頁簿就為手動運算 Application.Calculation = xlCalculationManual End Sub --------------------------------------------------------------------------- Private Sub Worksheet_Deactivate() '不選擇此活頁簿就自動運算 Application.Calculation = xlCalculationAutomatic End Sub --------------------------------------------------------------------------- 現在的問題在於──如果在複製狀態下,只要切換工作表A就會失去複製中的資料。 使用需求是: 1.工作表A是資料庫,本身無公式,但其他工作表會有大量公式對它進行運算, 所以需要在選擇此工作表的時候停止公式運算、不選擇此工作表時恢復運算。 2.工作表A的資料需要複製至其他工作表甚至是活頁簿。 目前想到的處理方式是: 1.取得複製或是剪下中的資料(還是物件?) 2.讓巨集執行以切換公式運算方式 3.把資料(物件)放回複製或剪下功能之中 以上,不知有無方法可實現呢? 謝謝! -- ┌─────────────────────────────┐ 就這樣,終於到了啟程的日子。 和來機場送行的朋友們說著玩笑話,其實內心恍恍惚惚像在作夢。 也似乎是因為,為了走到「出發」這一步,耗盡了全部心力。 └─────────────────石田裕輔《不去會死!》─┘ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.120.249.136 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1428636026.A.4F4.html ※ 編輯: foolkids (59.120.249.136), 04/10/2015 11:25:32
soyoso: 工作表A如不複製儲存格格式(純文字)的話,是否就直接讀入 04/10 11:26
soyoso: 陣列內 04/10 11:26
foolkids: 一般是純文字無誤,還請蘇大詳細說明 Q_Q 04/10 11:27
soyoso: 類似arr(變數) = [A1:B10](範圍) 04/10 11:30
soyoso: [D1].resize(10,2)=arr 貼上 04/10 11:31
soyoso: 讀進變數,在resize來寫入,類似複製貼上 04/10 11:32
foolkids: 使用者會貼去哪邊不固定 所以 [D1] 無法決定耶 04/10 11:34
soyoso: 那在原文內加上application.cutcopymode的判斷 04/10 11:40
本來也用這個方式處理:CutCopyMode下就不切換運算方式, 但是實際跑了幾次後發現還是需要切換運算方式,不然其他工作表資料會無法同步。 1. 工作表A編輯 (手動運算) 工作表B資料非最新 2. 複製工作表A資料 --> 切換工作表 --> CutCopyMode為真 --> 運算不切換 --> 工作表B資料未依據工作表A資料進行更新 --> 使用者判斷錯誤 ※ 編輯: foolkids (59.120.249.136), 04/10/2015 11:46:42
soyoso: 那想到的是用Workbook_SheetSelectionChange將選取(複製) 04/10 13:45
soyoso: 的位置寫到名稱管理員內,更新後再去以位置(referstorange 04/10 13:46
soyoso: ).copy再接讀入記憶體內,試試這樣是否可以改善 04/10 13:49
foolkids: !! 太強了! 我試試看! 04/10 15:08