-
Sorting and deleting from a table.
I have a score sheet that is used daily where a large number of names won't have a score. I copy a table from Excel into Word, sort the table, then convert it to text. I would also like to be able to delete any row that has a score of 0 )represented as ~ 00.
I've tried finding the score and deleting that row, but am not having any luck getting it to work right.
I've included a document with a table and the macro (Trivia Table).
The macro I'm using isn't very elegant, I record most of my macros. But it would sure be nice to be able to automate the rest of this task.
(I want to delete everything between the first 00 score and the last line, which should stay.)
Sub TriviaTable()
'
' TriviaTable Macro
' Macro recorded 8/4/2003 by Marci Abels
'
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.Range.Relocate wdRelocateDown
Selection.MoveUp Unit:=wdLine, Count:=2
Selection.Sort ExcludeHeader:=True, FieldNumber:="Column 2", SortFieldType _
:=wdSortFieldNumeric, SortOrder:=wdSortOrderDescending, FieldNumber2:= _
"Column 1", SortFieldType2:=wdSortFieldAlphanumeric, SortOrder2:= _
wdSortOrderAscending, FieldNumber3:="", SortFieldType3:= _
wdSortFieldAlphanumeric, SortOrder3:=wdSortOrderAscending, Separator:= _
wdSortSeparateByTabs, SortColumn:=False, CaseSensitive:=False, LanguageID _
:=wdEnglishUS
Selection.MoveDown Unit:=wdLine, Count:=2
Selection.MoveUp Unit:=wdLine, Count:=1
Selection.Delete Unit:=wdCharacter, Count:=1
Selection.Rows.ConvertToText Separator:=wdSeparateByDefaultListSeparator, _
NestedTables:=True
Selection.Fields.Unlink
Selection.Style = ActiveDocument.Styles("Factoids")
Selection.Font.Reset
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "~"
.Replacement.Text = " ~ "
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
-
Greetings
I'd be inclined to sort the table then cycle thro' deleting every row whose 2nd cell is 0
[VBA] Sub Macro2()
Dim myRow As Row
For Each myRow In Selection.Tables(1).Rows
myRow .Cells(2).Select
If Val(myRow .Cells(2).Range.Text) = 0 Then
myRow .Delete
End If
Next myRow
End Sub [/VBA]
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules