![]() |
|
|
|
#1
|
|||
|
|||
|
Hello,
I have several documents that contain data in one table (2 columns, row number varies) and I am trying to make a macro that loops through each row (starting from 3rd row) and copies the value of the 1st cell to the 2nd cell. Here's my current code: Code:
Sub a_macro()
Dim d As Document. t As Table, r As Long, c As Long, rw As Row
Set d = ActiveDocument
Set t = d.Tables(1)
For r = 3 To t.Rows.Count
Set rw = t.Rows(r)
For c = 1 To rw.Cells.Count
If c = 1 Then
t.Cell(r, c).Range.Copy
ElseIf c = 2 Then
t.Cell(r, c).Range.PasteAndFormat (wdFormatOriginalFormatting)
End If
Next c
Next r
End Sub
Any ideas how to fix this? I am using Word 2016. |
|
#2
|
||||
|
||||
|
Aside from the '.' after 'd As Document', your code works for me. That said, it's verbose and inefficient. Try:
Code:
Sub Demo()
Application.ScreenUpdating = False
Dim r As Long, Rng As Range
With ActiveDocument.Tables(1)
For r = 3 To .Rows.Count
With .Rows(r)
If .Cells.Count > 1 Then
Set Rng = .Cells(1).Range
Rng.End = Rng.End - 1
.Cells(2).Range.FormattedText = Rng.FormattedText
End If
End With
Next r
End With
Application.ScreenUpdating = True
End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#3
|
|||
|
|||
|
Works perfectly, thank you! Thanks also for the optimizations, I'm quite new to VBA and sometimes struggling a bit with the syntax even if I know the code isn't very efficient.
|
|
| Tags |
| 4605, paste, table |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
Copy/Paste error
|
stuart255 | Office | 5 | 05-06-2019 02:13 AM |
run-time error 4605 command not available with Selection.paste
|
Marzio | Word VBA | 14 | 01-30-2019 04:46 AM |
| Word Error Message Run time Error 4605 | baes10 | Word VBA | 1 | 08-30-2018 02:37 PM |
Error 4605 when looping through files in folder and deleting comments
|
Peterson | Word VBA | 2 | 04-19-2018 08:45 AM |
| PasteAppendTable not available (Run-Time Error 4605) | q_scribe | Word VBA | 1 | 08-12-2013 09:56 AM |