嘗試在粘貼文本後清除剪貼板,以便下一次運行不會包含剛剛粘貼的文本。
Sub Paste()
On Error Resume Next
Cells(1, 1).PasteSpecial
'Clear clipboard
Application.CutCopyMode = False
If Err Then
MsgBox "Nothing to paste!"
Err.Clear
End If
End Sub
這裏是使用MS更直接剪貼板另一種方式。首先,您需要在您的vba項目中添加對以下項的引用:Microsoft Forms 2.0對象庫。
Public Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function EmptyClipboard Lib "user32"() As Long
Public Declare Function CloseClipboard Lib "user32"() As Long
Sub Paste()
Dim DataObj As New MSForms.DataObject
DataObj.GetFromClipboard
On Error GoTo ErrorHandler
ActiveSheet.Cells(1, 1).Value = DataObj.GetText
OpenClipboard (0&)
EmptyClipboard
CloseClipboard
Exit Sub
ErrorHandler:
MsgBox "Nothing to paste!"
End Sub
'它會在單元格中輸入(1,1)文字: 「MSGBOX 」沒有粘貼「」,而不是顯示消息。「 - 這是因爲你最後的行動是複製這行代碼並將其粘貼到你的子版本中。而這行仍然在剪貼板 –