Consulting

Results 1 to 2 of 2

Thread: Sorting and deleting from a table.

  1. #1
    VBAX Regular
    Joined
    Jan 2005
    Location
    Kansas, land of Dorothy and Toto
    Posts
    36

    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




  2. #2
    VBAX Regular
    Joined
    Sep 2004
    Posts
    65
    Location
    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
  •