返回列表 上一主題 發帖

[發問] 如何在worksheet avtivate 之後仍保留剪貼簿的資料?

[發問] 如何在worksheet avtivate 之後仍保留剪貼簿的資料?

各位大大好,

小弟的問題在於
假設我有A、B兩個分頁
都有設定Worksheet activate

所以當我以人工的方式從A分頁複製客戶姓名
點選B分頁,接著進行貼上的時候

就會發現剪貼簿被清空了

因為activate的時候已經執行過巨集

有甚麼方式可以在執行VBA之後仍保留剪貼簿的資料嗎?
PKKO

可以用
Application.CutCopyMode =true
Application.CutCopyMode =false
來偵測~

TOP

回復 1# PKKO


A、B兩個分頁都有設定Worksheet activate  
所以, ACTIVATE後有程式運作, 改變了工作表, 也取消了COPYMODE,
工作表事件小心運用, 常常會讓某些基本操作無法使用, 如"貼上"或"復原"

TOP

回復  PKKO


A、B兩個分頁都有設定Worksheet activate  
所以, ACTIVATE後有程式運作, 改變了工作表, ...
准提部林 發表於 2020-12-15 10:59


大大您說的部份沒錯
但有解決的方式嗎?

可以將剪貼簿保存起來的方法嗎?
PKKO

TOP

回復 4# PKKO


Private Sub Worksheet_Activate()
If Application.CutCopyMode Then Exit Sub
其它執行程式
End Sub

TOP

回復 4# PKKO
簡單點的話就是在進入你的處理程式之前先把剪切板所有內容保存起來,所有處理完成后,在激活另一個工作表avtivate時,再把保存的內容恢復回剪切板內。
當然,還有更簡單的方式就是找到自己代碼內影響到剪切板內容的代碼,想辦法讓它不要影響到剪切板或是用其它不會影響到剪切板內容的代碼替換。
世界那麼大,可我想去哪?

TOP

回復  PKKO


Private Sub Worksheet_Activate()
If Application.CutCopyMode Then Exit Sub
其它執行 ...
准提部林 發表於 2020-12-24 18:48



感謝大大的回覆
但這樣的方式則會無法執行原本應該要執行的程式

小弟的需求是
A、B兩個分頁都有Activate的功能
但我在A分頁複製了range("a1")
當我移動到B分頁的時候,原本複製的內容就無法使用了

該怎麼做可以保留活頁簿的東西呢?
PKKO

TOP

回復  PKKO
簡單點的話就是在進入你的處理程式之前先把剪切板所有內容保存起來,所有處理完成后,在激活另 ...
Joforn 發表於 2021-1-19 19:56



    您說的完全正確哦!
但要怎麼做...

有範例文章或是Sample Code嗎?
PKKO

TOP

        靜思自在 : 人的眼睛長在前面,只看到別人的缺點,絲毫看不到自己的缺點。
返回列表 上一主題