![]() |
|
![]() |
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
![]()
CannotEditRange.zip
Code:
Sub t() ''' Retain every first character of each cell in Table 1 Dim oRange As Range With Selection Set oRange = .Range With oRange .Start = .Start - 1 .Delete ''' Run-time error 5904: Cannot edit Range End With End With End Sub Each row has a string like "abcde". I want to delete all the characters except the first one. I don't know why my codes above only show errors when the strings are inside a table cell. (If "abcde" is in a paragraph, it works) |
#2
|
|||
|
|||
![]() Code:
Dim str As String Dim oRange As Range With ActiveDocument With .Tables(1) For Each Cell In .Range.Cells With Selection Set oRange = Cell.Range With oRange ''' It seems that for table cells .Start cannot function ''' First we should .End = .End - 1 first .End = .End - 1 .Start = .Start + 1 .Delete End With End With Next End With End With |
#3
|
||||
|
||||
![]()
Hi tinfanide,
Try: Code:
Sub Demo() Dim oCel As Cell With Selection If .Information(wdWithInTable) = False Then Exit Sub For Each oCel In .Tables(1).Range.Cells oCel.Range.Text = oCel.Range.Characters.First Next End With End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#4
|
|||
|
|||
![]()
Yes, I was just confusing myself when doing all the best in Range. It should have been avoided. Your approach is simpler.
|
![]() |
Thread Tools | |
Display Modes | |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
tinfanide | Word VBA | 1 | 02-06-2012 05:57 AM |
How can I delete the content of a cell in column if the cell value is more than 1000? | Learner7 | Excel | 2 | 06-27-2011 05:44 AM |
Can't delete range - error 5904 | expatriate | Word VBA | 1 | 06-03-2011 12:12 AM |
![]() |
dea | Word | 1 | 01-04-2011 02:24 AM |
Auto-populate an MS Word table cell with text from a diff cell? | dreamrthts | Word Tables | 0 | 03-20-2009 01:49 PM |