[問題] 巨集執行前後要如何保留複製中的資料?

看板Office作者 (翼をください)時間11年前 (2015/04/10 11:20), 11年前編輯推噓0(0012)
留言12則, 2人參與, 最新討論串1/1
軟體: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

04/10 11:26, , 1F
工作表A如不複製儲存格格式(純文字)的話,是否就直接讀入
04/10 11:26, 1F

04/10 11:26, , 2F
陣列內
04/10 11:26, 2F

04/10 11:27, , 3F
一般是純文字無誤,還請蘇大詳細說明 Q_Q
04/10 11:27, 3F

04/10 11:30, , 4F
類似arr(變數) = [A1:B10](範圍)
04/10 11:30, 4F

04/10 11:31, , 5F
[D1].resize(10,2)=arr 貼上
04/10 11:31, 5F

04/10 11:32, , 6F
讀進變數,在resize來寫入,類似複製貼上
04/10 11:32, 6F

04/10 11:34, , 7F
使用者會貼去哪邊不固定 所以 [D1] 無法決定耶
04/10 11:34, 7F

04/10 11:40, , 8F
那在原文內加上application.cutcopymode的判斷
04/10 11:40, 8F
本來也用這個方式處理:CutCopyMode下就不切換運算方式, 但是實際跑了幾次後發現還是需要切換運算方式,不然其他工作表資料會無法同步。 1. 工作表A編輯 (手動運算) 工作表B資料非最新 2. 複製工作表A資料 --> 切換工作表 --> CutCopyMode為真 --> 運算不切換 --> 工作表B資料未依據工作表A資料進行更新 --> 使用者判斷錯誤 ※ 編輯: foolkids (59.120.249.136), 04/10/2015 11:46:42

04/10 13:45, , 9F
那想到的是用Workbook_SheetSelectionChange將選取(複製)
04/10 13:45, 9F

04/10 13:46, , 10F
的位置寫到名稱管理員內,更新後再去以位置(referstorange
04/10 13:46, 10F

04/10 13:49, , 11F
).copy再接讀入記憶體內,試試這樣是否可以改善
04/10 13:49, 11F

04/10 15:08, , 12F
!! 太強了! 我試試看!
04/10 15:08, 12F
文章代碼(AID): #1L9q5wJq (Office)
文章代碼(AID): #1L9q5wJq (Office)