2016-03-14 54 views
2

Application.CutCopyMode=False在windows excel中清除虛線和剪貼板數據丟失,這是可取的。如何清除mac上的剪貼板excel vba

但是對於Mac OS也是如此。在Mac上清除虛線,但剪貼板數據不會丟失。

是否有單行或任何方法可以清除mac和windows上的剪貼板?

回答

0

我發現這個代碼here,我沒有或使用Mac,所以我不能測試這個,但從閱讀代碼它將分配「」(沒有換句話說)到剪貼板。

希望這個作品,或者至少可以讓你在正確的方向

Public Function ClearMacClipBoard() As Boolean 
    Dim myDO As DataObject 

    On Error GoTo EndCMCB 
    Set myDO = New DataObject 
    myDO.SetText "" 
    myDO.PutInClipboard 
    Application.CutCopyMode = False 
    ClearMacClipBoard = True 
EndCMCB: 
    On Error GoTo 0 
End Function 

編輯:

從評論

稍有變化,試圖在Windows和Mac

工作都

這應該跳過任何無法正常運行的代碼行,因此當您嘗試在Windows上運行Mac代碼時,它只會跳過它,反之亦然

Public Function ClearMacClipBoard() As Boolean 
    Dim myDO As DataObject 

    On Error GoTo Resume Next 
    Set myDO = New DataObject 
    myDO.SetText "" 
    myDO.PutInClipboard 
    Application.CutCopyMode = False 
    ClearMacClipBoard = True 
    On Error GoTo 0 
End Function 
+0

但這不適用於Windows的權利?我需要兩個系統兼容的東西 – newguy

+0

您是否正在使用適用於Mac和Windows版本Excel的單行代碼?因爲'Application.CutCopyMode = False'將清除Windows和'myDO.SetText'「''myDO.PutInClipboard'將清除Mac,只需將'On error Goto EndCMCB'更改爲'On error resume next' –

+0

否我追求任何能在兩個系統上運行的東西。目前你的例子不會在Windows上工作。示例:假設我必須在不同的系統上運行相同的宏,那麼它不應該給我任何錯誤。 – newguy