ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   VBA task: Copy selection in Word and paste in Excel (https://www.excelbanter.com/excel-programming/446513-vba-task-copy-selection-word-paste-excel.html)

[email protected]

VBA task: Copy selection in Word and paste in Excel
 
I have a Word document which contains several blocks of text enclosed in curly brackets (e.g., "{This is the text I want to copy.}"). I want to find and copy those blocks of text and paste them into cells in Excel.

It seems to me this must be a pretty common task... anybody know a simple way to do it?

Thanks.

Peter T[_5_]

VBA task: Copy selection in Word and paste in Excel
 
Only lightly tested -

Sub test()
Dim pos1 As Long, pos2 As Long, i As Long
Dim objWord As Object

On Error Resume Next
Set objWord = GetObject(, "word.application")
If Not objWord Is Nothing Then
s = objWord.activedocument.Range.Text
End If
On Error GoTo 0
If Len(s) = 0 Then
' can't get active document with text
Exit Sub
End If
pos2 = 1
While pos2 0
pos1 = InStr(pos2, s, "{")
If pos1 Then
pos2 = InStr(pos1, s, "}")

End If
If pos2 = pos1 + 2 And pos1 0 Then
i = i + 1
Cells(i, 1) = Mid$(s, pos1 + 1, pos2 - pos1 - 1)
Else: pos2 = 0
End If
Wend

End Sub


Could also probably Automate Word and use Word's Find method,

With objWord.Selection.Find
.ClearFormatting
.Text = "\{*\}"
.Replacement.Text = ""
.Forward = True
.Wrap = 2 ' wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
End With

return found strings (trimmed without the brackets) to say an array or
collection or directly into cells in Excel

Regards,
Peter T



All times are GMT +1. The time now is 05:16 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com