Results 1 to 5 of 5

Thread: How to amend Macro to consider all table columns instead of just the first

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    VBAX Sage
    Joined
    Apr 2007
    Location
    United States
    Posts
    8,884
    Location
    Just a quick guess

     If oRow.Cells(4).Range.Text = TargetText & vbCr & Chr(7) Then oRow.Delete
    But I'd start deleting bottoms to top

    Sub DeleteRows()
    Dim TargetText As String
    Dim oRow As Row
    Dim i as Long
    If Selection.Information(wdWithInTable) = False Then Exit Sub
    TargetText = "INTERNAL"
    With Selection.Tables(1)
    For i = Rows.Count to 1 Step -1
      With .Rows(i)
        If .Cells(4).Range.Text = TargetText & vbCr & Chr(7) Then .Delete
      End with
    Next i
    End With
    End Sub
    Last edited by macropod; 08-07-2022 at 10:42 PM.
    ---------------------------------------------------------------------------------------------------------------------

    Paul


    Remember: Tell us WHAT you want to do, not HOW you think you want to do it

    1. Use [CODE] ....[/CODE ] Tags for readability
    [CODE]PasteYourCodeHere[/CODE ] -- (or paste your code, select it, click [#] button)
    2. Upload an example
    Go Advanced / Attachments - Manage Attachments / Add Files / Select Files / Select the file(s) / Upload Files / Done
    3. Mark the thread as [Solved] when you have an answer
    Thread Tools (on the top right corner, above the first message)
    4. Read the Forum FAQ, especially the part about cross-posting in other forums
    http://www.vbaexpress.com/forum/faq...._new_faq_item3

  2. #2
    VBAX Newbie
    Joined
    Aug 2022
    Posts
    3
    Location
    Quote Originally Posted by Paul_Hossler View Post
    Just a quick guess

     If oRow.Cells(4).Range.Text = TargetText & vbCr & Chr(7) Then oRow.Delete

    I've tried changing the Cells(1) to Cells(4) but I get the error message:

    "Run-time error '5941':

    The requested member of the collection does not exist."


    It seemed like the logical choice to me too, but no luck. Thanks for the suggestion though.

  3. #3
    VBAX Newbie
    Joined
    Aug 2022
    Posts
    3
    Location
    But I'd start deleting bottoms to top

    Sub DeleteRows()
    Dim TargetText As String
    Dim oRow As Row
    Dim i as Long
    If Selection.Information(wdWithInTable) = False Then Exit Sub
    TargetText = "INTERNAL"
    With Selection.Tables(1)
    For i = Rows.Count to 1 Step -1With .Rows(i)
        If .Cells(4).Range.Text = TargetText & vbCr & Chr(7) Then .Delete
    End with
    Next i
    End With
    End Sub
    I tried this code instead. It's come back with:

    "Compile error: Syntax error" and appears to be highlighting the line: "Sub DeleteRows()"

    I've checked the macro is named 'DeleteRows' to match. I'm not sure what else to try.

    Thanks.

    Edit: I think it's the line:

    For i = Rows.Count to 1 Step -1With .Rows(i)
    Causing the Syntax error.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •