11. september 2018 - 23:21Der er
1 kommentar og 1 løsning
makro
jeg skal bruge en makro i word 2010 som kan slette en række i en tabel.
jeg har en tabel på xx rækker og ønsker at slette alle de rækker, hvor celle2 er tom. min kollega har lavet en, som sletter hvis en bestem tekst forekommer, men man kan ikke indtaste "tom celle".
hvad skal jeg rette?
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
Du kan ikke blot rette den eksisterende makro. Du kan ikke bruge metoden i den makro til formålet. Det er nødt til at blive gjort ved at undersøge cellerne i tabellen. En celle, som er tom, indeholder faktisk noget alligevel, nemlig en End of Cell marker (kan ses når formateringsmærker er vist). En sådan er en string med længden 2. Det kan bruges til at tjekke cellerne.
Forudsætningen for, at du kan slette rækker er, at der ikke er lodret flettede celler i tabellen. Makroen, jeg har lavet, forudsætter at markøren er i tabellen.
Sub DeleteRowsWithEmtpyCell2() Dim orow As Row
'assume that the selection is in the table to handle For Each orow In Selection.Tables(1).Rows If orow.Cells.Count >= 2 Then If Len(orow.Cells(2).Range.Text) = 2 Then orow.Delete End If End If Next orow
jeg kan ikke gennemskue, hvad makroen gør, men det virker perfekt :) Tak for hjælpen...
Synes godt om
Ny brugerNybegynder
Din løsning...
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.