作者foolkids (翼をください)
看板Office
標題[問題] 巨集執行前後要如何保留複製中的資料?
時間Fri Apr 10 11:20:23 2015
軟體: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