#1
|
|||
|
|||
Keep text selected after paste
I've tried to search for a similar thread but I wasn't able to find one, so:
I d like that word would maintain the text that I've just pasted selected. I mean, I open a new document, select a piece of text and paste it in this new document, but I would like to see it still selected to know where the pasted text begins. I don't know if I made myself clear. It's such a small thing but it creates lots of problems when I work with long texts. Can anyone help? |
#2
|
||||
|
||||
Hi dabbler,
Word has no option for doing that.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#3
|
|||
|
|||
Thanks,
now at least I know that there's no use to search for it. |
#4
|
|||
|
|||
Perhaps you could try applying a character style to the selection to give it a specific colour? a quick test with 2010 gives me visibly different text in the target document, while the text in the source document remains highlighted. To clear the colour, select the text you marked/pasted and press ctrl+spacebar.
YMMD :-} |
#5
|
|||
|
|||
If you don't need special paste features you might use a simple macro:
Code:
Sub ScratchMacro() 'A basic Word macro coded by Greg Maxey Dim oRng As Word.Range Set oRng = Selection.Range oRng.Paste oRng.Select End Sub |
#6
|
|||
|
|||
Quote:
The above works well Greg, thanks. As you say, this only works with 'normal paste'. I need the above to work with a special paste. Is this possible? I often copy text from pdf and paste into word. I want a single macro which can: - do a 'MergeFormatting' paste into Word, and then - have this pasted text automatically selected, and then - I will add more to the macro, including a way to replace unwanted paragraphs with spaces (already described by others, and I already have this code). Any help would be MUCH appreciated! |
#7
|
|||
|
|||
Quote:
Thank you Greg, this is very helpful and solved the same problem that I was having. Please could you break down the code so I can understand what each part means? I am new to vba. Thanks! |
#8
|
|||
|
|||
OP,
I'm not a computer scientists, but something like this: Code:
Sub ScratchMacro() 'oRng is a named variable. I just made it up using o meaning object and Rng meaning range 'Dim declares a named variable and defines the data type in the Word object model. In this case 'a Word.Range Dim oRng As Word.Range 'Use Set to set the range object to a range in the document e.g., the Selection.Range Set oRng = Selection.Range 'Paste is a method of a range object and puts the contents in and expands the range. oRng.Paste 'Select is a method of a range object and selects the defined range. oRng.Select End Sub |
#9
|
|||
|
|||
Thanks Greg for your quick reply.
What I was wondering was at what point does the code say to select what had just been pasted. Now I understand much better |
#10
|
|||
|
|||
Quote:
For the macro belwo you once posted is there a way to do the same thing using PasteSpecial (unformated text) with the Select at the end? I've been trying and have not any success. Sub ScratchMacro() 'A basic Word macro coded by Greg Maxey Dim oRng As Word.Range Set oRng = Selection.Range oRng.Paste oRng.Select End Sub Many thanks David |
#11
|
|||
|
|||
Interesting. It doesn't behave the same. Someone may have a better idea and I am short on time but this might work:
Code:
Sub ScratchMacro() 'A basic Word macro coded by Greg Maxey Dim oRng As Word.Range Dim lngS As Long, lngE As Long Set oRng = Selection.Range lngS = Len(oRng.Paragraphs(1).Range.Text) oRng.PasteSpecial DataType:=wdPasteText lngE = Len(oRng.Paragraphs(1).Range.Text) oRng.MoveStart wdCharacter, -(lngE - lngS) oRng.Select lbl_Exit: Exit Sub End Sub |
#12
|
|||
|
|||
Hi Greg,
Many thanks. I tried the revised macro, but it only selects the last line. Is there an adjustment that can be made to select all the text pasted? Best regards, David |
#13
|
|||
|
|||
Davd,
I just don't see a simple solution. This may work, but in complex documents with things other than text, it might fall over: Code:
Sub ScratchMacro() 'A basic Word macro coded by Greg Maxey Dim oRng As Word.Range Dim lngS As Long, lngE As Long Set oRng = Selection.Range lngS = Len(ActiveDocument.Range.Text) oRng.PasteSpecial DataType:=wdPasteText lngE = Len(ActiveDocument.Range.Text) oRng.MoveStart wdCharacter, -(lngE - lngS) oRng.Select lbl_Exit: Exit Sub End Sub |
#14
|
||||
|
||||
Using the same principle, this appears to work but is a bit simpler than Greg's code.
Code:
Sub ScratchMacro() Dim oRng As Word.Range, lngS As Long Set oRng = Selection.Range lngS = oRng.Start oRng.PasteSpecial DataType:=wdPasteText oRng.Start = lngS oRng.Select End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
#15
|
|||
|
|||
Andrew,
Of course! Always helps when some like you looks at the problem with a fresh set of eyes. Makes one rethink: Code:
Sub ScratchMacroII() Dim oRng As Word.Range Set oRng = Selection.Range.Duplicate Selection.PasteSpecial DataType:=wdPasteText Selection.Start = oRng.Start End Sub |
Tags |
copy and paste, text selection |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Macro to find text in between two characters and then format selected text? | qcom | Word | 5 | 02-19-2015 11:23 PM |
Getting mult resps. selected in listbox to concatenate & paste at a bookmark in Word | marksm33 | Word VBA | 3 | 01-15-2015 05:59 PM |
Formatting affecting more than selected text | esteban | Word | 7 | 05-25-2012 04:34 AM |
Do NOT print selected text | Tracy | Word | 2 | 09-11-2011 07:25 AM |
Selected text and logo in one macro | marijke | Word VBA | 0 | 08-24-2009 07:01 AM |