I am working on copy and past the word tables to excel. but there are a lot of 'enter' key in word tables. could I know how to replace the the enter key in whole word tables. I am encountering issue" wrong number of argument or invalid property assignment"
-
Try replace `With Selection.Find` with `ActiveDocument.Tables(1).Range.Find`, there's no need to select range 99% of the time (so you can probably delete `ActiveDocument.Tables(1).Range.Select` too). – Raymond Wu Sep 23 '21 at 09:05
-
What are you trying to replace carriage return ("enter" key) with? `.Text = ">P"` should be `.Text = "^p"` and `^p` in `.Replacement.Text = "^p"` should be replaced with your replacement character. – Raymond Wu Sep 23 '21 at 09:10
-
Please also read on [how to avoid using Select/Activate](https://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba?rq=1), you do not need to activate/select your worksheet/cell 99% of the time (In fact, it's bad practice) – Raymond Wu Sep 23 '21 at 09:12
-
See, for example: https://www.excelguru.ca/forums/showthread.php?8900-Help-with-VBA-to-extract-data-from-Word-to-Excel&p=36586&viewfull=1#post36586 – macropod Sep 23 '21 at 23:24
-
You likely also need to eliminate the end-of-cell marks, not just paragraph marks. – Charles Kenyon Sep 24 '21 at 02:09
-
@CharlesKenyon Bro, how to do it? – Zhao Yang Sep 26 '21 at 14:29
-
Sorry, I do not remember. But I do know it is a separate character. You should be able to find it with an Internet search. – Charles Kenyon Sep 26 '21 at 17:03
-
You really should read code in the link I posted... – macropod Sep 27 '21 at 00:16
-
@macropod bro, I read it, but the Execute Replace:=wdReplaceAll is not working – Zhao Yang Sep 28 '21 at 06:38
-
The code *as posted* in the link works just fine... – macropod Sep 28 '21 at 22:53
2 Answers
With Selection.find references the Excel selection object. But you want to work with the Word selection object.
Do you have a variable for the word application, e.g. appWord?
Use this: With appWord.Selection.find
If not With oLookWordDoc.parent.selection.find should work
- 9,580
- 4
- 13
- 29
You have more than one problem with this code.
The first is that you are not setting oLookWordDoc to point to a document, so none of the Word code will work.
Second, you have two variables pointing to the same table, oLookwordTbl and r. You only need one of these.
Third, you are selecting the table to run Find instead of simply using the Find method of Table.Range.
Fourth, your find and replacement texts are incorrect.
The tidied code below will replace the paragraph marks in the table with a space.
Dim oLookWordDoc As Word.document
Dim oLookwordTbl As Word.Table
Dim iRow As Long 'row index
'you need to set oLookWordDoc to point to a document here
'Grab the word table
Set oLookwordTbl = oLookWordDoc.Tables(1)
With oLookwordTbl.Range.Find
.Text = "^p"
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
'rows 2 - end
For iRow = 2 To oLookwordTbl.Rows.Count
oLookwordTbl.Rows(iRow).Range.Copy
'Paste
xWs.Paste
xWs.Cells(xWs.Rows.Count, 1).End(3).Offset(1).Select
Next
- 7,221
- 2
- 10
- 14
-
Hi Timothy, Thanks for your time to reply this. However, coding having issue "this command is not available" while running {.Execute Replace:=wdReplaceAll} system show: wdReplaceAll=2 ( helight yellow color ) – Zhao Yang Sep 24 '21 at 14:22
-
@ZhaoYang - Sounds as though you don’t have a reference to the Word library. – Timothy Rylatt Sep 24 '21 at 15:32
-
Hi Timothy, I verified the 'Microsoft word 16.0 object library' was enabled. – Zhao Yang Sep 25 '21 at 08:29
-
I paste full code with your advise. the .Execute Replace:=wdReplaceAll is not working. – Zhao Yang Sep 25 '21 at 08:37
-
@ZhaoYang - the code is correct so if it isn’t working there is something else wrong. You need to edit your question, or post a new one, and show the full code you are using. – Timothy Rylatt Sep 25 '21 at 10:12
-