01. august 2016 - 08:58Der er
4 kommentarer og 1 løsning
Optimering af makro til at slette tomme mellemrum
Hej
Jeg har 3 nærmest identiske makroer, som jeg godt kunne tænke mig at få samlet til en enkelt makro. Makroerne søger efter bogmærkerne HeleAdressen, HeleAdressen2 og HeleAdressen3.
Den første makro for HeleAdressen er følgende: _ _ _ _ _ _ _ _ _ _ _ _ _ _ Sub Adressefelter() Dim rngAdresse As Range
With ActiveDocument If .Bookmarks.Exists("HeleAdressen") Then 'fjern beskyttelse UnprotectForFormFields ActiveDocument Set rngAdresse = .Bookmarks("HeleAdressen").Range
'Find all occurrences of two spaces and two commas and delete by a single With rngAdresse Do Until InStr(1, .Text, " ") = 0 And _ InStr(1, .Text, ",,") = 0 .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, ",,", ",") .Text = Replace(.Text, " ", "") Loop End With 'beskyt igen ProtectForFormFields ActiveDocument End If End With
Set rngAdresse = Nothing End Sub _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
De øvrige 2 makroer er fuldstændig identiske bortset fra, at bogmærkenavnet er udskiftet med henholdsvis HeleAdressen2 og HeleAdressen3.
Hvordan kombineres disse 3 makroer til en enkelt makro?
Sub Adressefelter() testAdressen "HeleAdressen" testAdressen "HeleAdressen2" testAdressen "HeleAdressen3" End Sub Private Sub testAdressen(denneAdresse) Dim rngAdresse As Range With ActiveDocument If .Bookmarks.Exists(denneAdresse) Then 'fjern beskyttelse UnprotectForFormFields ActiveDocument Set rngAdresse = .Bookmarks("HeleAdressen").Range
'Find all occurrences of two spaces and two commas and delete by a single With rngAdresse Do Until InStr(1, .Text, " ") = 0 And _ InStr(1, .Text, ",,") = 0 .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, " ,", ",") .Text = Replace(.Text, ",,", ",") .Text = Replace(.Text, " ", "") Loop End With 'beskyt igen ProtectForFormFields ActiveDocument End If End With
Jeg har testet makroen, men jeg får desværre fejlen "Det pågældende medlem af samlingen findes ikke" >>> Set rngAdresse = .Bookmarks("denneAdresse").Range
Det burde jeg have opdaget, men nogle gange kan man ikke se skoven for bare træer. Jeg takker 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.