Excel VBA粘贴和错误显示msgbox
我很抱歉,因为这里可能已经讨论过很多次了。我有以下问题。此宏应该从剪贴板粘贴到单元格(1,1)。如果剪贴板中没有数据,我希望它显示msgbox,并测试“无需粘贴” 此操作将在单元格(1,1)文本中输入错误:“MsgBox”Nothing to paste”(无需粘贴),而不是显示消息 你能帮我改正错误吗?非常感谢Excel VBA粘贴和错误显示msgbox,excel,vba,error-handling,Excel,Vba,Error Handling,我很抱歉,因为这里可能已经讨论过很多次了。我有以下问题。此宏应该从剪贴板粘贴到单元格(1,1)。如果剪贴板中没有数据,我希望它显示msgbox,并测试“无需粘贴” 此操作将在单元格(1,1)文本中输入错误:“MsgBox”Nothing to paste”(无需粘贴),而不是显示消息 你能帮我改正错误吗?非常感谢 Sub Paste() Cells(1, 1).PasteSpecial If Err Then MsgBox "Nothing to paste" End If End Sub
Sub Paste()
Cells(1, 1).PasteSpecial
If Err Then
MsgBox "Nothing to paste"
End If
End Sub
粘贴文本后,请尝试清除剪贴板,以便下次运行时不会包含刚刚粘贴的文本
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
现在它工作得很好,我已经更改了。粘贴到.PasteSpecial
它将在单元格(1,1)中输入文本:“MsgBox“无需粘贴”而不是显示消息。
-这是因为您上次的操作是复制这一行代码并将其粘贴到子单元格中。而这一行仍在剪贴板中抱歉,我尝试查找Microsoft Forms 2.0对象库,但它不在我的电脑上。我还尝试在电脑上搜索FM20.DLL文件,但没有结果-这可能是因为我使用的是WYSE终端。有其他方法可以做到这一点吗?第一个只显示错误信息,不粘贴任何内容。我在那里尝试了第二位代码,并简单地将activesheet.cells(1,1)
替换为selection
,但结果不理想,整个剪贴板被粘贴到selection中的每个单元格中。。我想,要想实现自动粘贴对数据表的作用,需要花费相当长的时间。无论哪种方式,都可以获得信息~!(学习新方法总是很受欢迎的!)Hi@Reverus-在格式方面有点限制。如果您只有一列但有多行需要拆分成行,请尝试John。但是,它不处理多个列,并且假定分隔行的是vbCr
。
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