![]() |
|
![]() |
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
![]()
My goal: copy and paste the highlights within the selected regions to another doc file (see the picture below). This means that when I select the region and run my macro, I want only "group together as" to be the result I get.
My current macro: Sub CopyHighlightsSelectedToOtherDoc() Dim ThisDoc As Document Dim ThatDoc As Document Dim r As Range Set ThisDoc = ActiveDocument Set r = ActiveDocument.Range(Selection.Range.Start, Selection.Range.End) Set ThatDoc = Documents.Add With r.Find .Text = "" .Highlight = True Do While .Execute(Forward:=True) = True ThatDoc.Range.InsertAfter r.Text & vbCrLf r.Collapse 0 Loop End With End Sub Problem: I'm a newbie and just found the original code somewhere else and modified it a bit. But there will always be an error on the Range Selection part. In this case, is that possible to let the macro use the currently selected sections only not the whole document? Some posts said macro cannot do things like that. My current code always goes to the end of the document, which gives "group together as" and also "accomplish a task automatically". Additionally, how to make the macro to save the results in another fixed document? Let's say I want to save it in a file named "container.docx" on the desktop. I tried Set ThatDoc = C:\Users\apple\Desktop\container.docx, but that didn't work. How to solve this then? I really appreciate anyone who can provide some help. |
#2
|
||||
|
||||
![]()
The following should work (at least on the PC version of Word), provided the folder you mentioned exists:
Code:
Option Explicit Sub CopyHighlightsSelectedToOtherDoc() Dim ThisDoc As Document Dim ThatDoc As Document Dim r As Range, orng As Range Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Const strDoc As String = "C:\Users\apple\Desktop\container.docx" 'folder must exist Set ThisDoc = ActiveDocument Set r = Selection.Range Set orng = Selection.Range If Len(r) > 0 Then If fso.FileExists(strDoc) Then Set ThatDoc = Documents.Open(strDoc) Else On Error GoTo err_Handler Set ThatDoc = Documents.Add ThatDoc.SaveAs2 strDoc End If With r.Find .Highlight = True Do While .Execute(Forward:=True) = True And r.InRange(orng) ThatDoc.Range.InsertAfter r.Text & vbCrLf r.Collapse 0 Loop End With ThatDoc.Save Else MsgBox "Nothing selected" End If lbl_Exit: Set r = Nothing Set orng = Nothing Exit Sub err_Handler: ThatDoc.Close 0 MsgBox "Target document not available" Err.Clear GoTo lbl_Exit End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#3
|
||||
|
||||
![]()
Cross-posted at: http://www.tek-tips.com/viewthread.cfm?qid=1776432
For cross-posting etiquette, please read: http://www.excelguru.ca/content.php?184
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#4
|
|||
|
|||
![]()
Thank you so much! It really works and saves me lots of time
![]() |
![]() |
Tags |
highlighted-text |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Chart with Actuals and Goals for Multiple INTL Regions | Italiano329 | Excel | 4 | 01-22-2016 09:48 AM |
![]() |
webharvest | Outlook | 1 | 08-15-2015 01:55 AM |
![]() |
Evgeny | Project | 3 | 01-03-2013 06:45 AM |
![]() |
Joeb | Project | 3 | 06-25-2012 04:18 PM |
Save Current Slide as Picture | excelledsoftware | PowerPoint | 2 | 01-18-2012 02:42 PM |