09. januar 2023 - 10:05Der er
2 kommentarer og 1 løsning
Makro til sletning i tabel
Jeg har denne lille makro, som beder om en tekst og efterfølgende sletter alle rækker i tabellen, hvor teksten forekommer. Jeg ville gerne have den ændret, så den i stedet for BEVARER alle de rækker, hvor teksten forekommer og sletter alle de rækker, hvor teksten ikke forekommer.
Sub DeleteRowWithSpecifiedText() Dim sText As String
sText = InputBox("Enter text for Row to be deleted") Selection.Find.ClearFormatting With Selection.Find .Text = sText .Wrap = wdFindContinue End With Do While Selection.Find.Execute If Selection.Information(wdWithInTable) Then Selection.Rows.Delete End If Loop End Sub
Lad makroen gå gennem alle rækker i alle tabeller. Slet rækken, hvis teksten ikke findes i den. Men du skal være opmærksom på, at makroen vil fejle, hvis der er lodret flettede celler i en tabel. Derfor bør du indbygge fejlhåndtering. Makroen (uden fejlhåndtering) kan set sådan ud:
Sub DeleteRowsWithoutSpecifiedText() Dim sText As String Dim oTable As Table Dim oRow As Row
sText = InputBox("Enter text for Row to be deleted")
For Each oTable In ActiveDocument.Tables For Each oRow In oTable.Rows If InStr(oRow.Range.Text, sText) = 0 Then oRow.Delete End If Next oRow Next oTable
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.