![]() |
![]() |
|
|||||||
| Excel Questions All Excel/VBA questions - formulas, macros, pivot tables, general help, etc. Please post to this forum in English only. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
Board Regular
Join Date: Apr 2002
Posts: 682
|
Gentlemen
If a line in VBA says: "ActiveSheet.Paste" and the ClipBoard is empty, the program crashes with a, [Run-time error '1004': Paste method of Worksheet class failed] Error message. Does anyone know how to test for an empty ClipBoard in VBA? By the Way, Maslan asked a similar question here: Clipboard Oddities Thnaks StACase@mailcity.com Last edited by smozgur; Dec 30th, 2008 at 06:05 PM. Reason: changed referred thread URL with the actual forum link |
|
|
|
|
|
#2 |
|
MrExcel MVP
Join Date: Feb 2002
Location: Auckland, New Zealand
Posts: 4,209
|
Something like this may help....change
as required.... On Error Resume Next ActiveSheet.Paste If Err Then MsgBox "Nothing to paste!": Err.Clear |
|
|
|
|
|
#3 |
|
Board Regular
Join Date: Apr 2002
Posts: 682
|
Thank you
Plugged that baby in, and it worked first time out of the box! WooHoo! The user is happy too |
|
|
|
|
|
#4 |
|
New Member
Join Date: Jun 2011
Posts: 18
|
This code is exactly what I need but I'm fairly inexperienced with the use of Message Boxes so need some more help please.
This is my 'paste' code Sub PasteData() ' ' PasteData Macro ' Application.ScreenUpdating = False Range("B1").Select ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= _ False Cells.Columns.AutoFit Application.ScreenUpdating = True End Sub When I try to paste with an empty clipboard the error described in the first post appears. I tried adding the suggested code to my VBA but when I run the macro the following text just gets pasted into cell B1. If Err Then MsgBox "Nothing to paste!": Err.Clear Do I have to add a message box by some other means? Thanks Nick |
|
|
|
|
|
#5 |
|
New Member
Join Date: Jun 2011
Posts: 18
|
Anyone?
Cheers Nick |
|
|
|
|
|
#6 |
|
Board Regular
Join Date: Aug 2010
Location: Glevum Castra, Britannia
Posts: 5,284
|
That's probably because you still had If Err Then MsgBox "Nothing to paste!": Err.Clear in the clipboard when you ran the macro, so it did exactly what you told it to do: paste the contents of the clipboard into B1.
Your code should look like this:- Code:
Sub PasteData()
'
' PasteData Macro
'
Application.ScreenUpdating = False
Range("B1").Select
On Error Resume Next
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:= False
If Err Then MsgBox "Nothing to paste!": Err.Clear
Cells.Columns.AutoFit
Application.ScreenUpdating = True
End Sub
You've already tested it with the clipboard not empty!
__________________
R. --- On two occasions I have been asked, 'Pray, Mr Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question. |
|
|
|
|
|
#7 | |
|
New Member
Join Date: Jun 2011
Posts: 18
|
Quote:
Cheers dude. |
|
|
|
|
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|