Tilbakestill Excel "Søk og erstatt" dialogboksen parametere

stemmer
2

Hvordan kan jeg programmanullstille Excel Find and Replacedialogboksen parametere til standard ( Finn hva, Erstatt med, I, Søk, Look in, Match case, Match hele celleinnhold)?

Jeg bruker Application.FindFormat.Clearog Application.ReplaceFormat.Clearå tilbake finne og erstatte celleformater.

Interessant, etter bruk expression.Replace(FindWhat, ReplaceWhat, After, MatchCase, WholeWords), det FindWhatviser strengen i Find and Replacedialogboksen, men ikke den ReplaceWhatparameter.

Publisert på 28/10/2008 klokken 11:44
kilden bruker
På andre språk...                            


4 svar

stemmer
1

Du kan bruke følgende kommando for å åpne "Erstatt" dialog med felt fylt:

Application.Dialogs (xlDialogFormulaReplace) .Show -arguments her-

argumentlisten er

søk_etter_tekst, REPLACE_TEXT, look_at, look_by, active_cell, match_case, match_byte


Så langt er den eneste måten jeg har funnet å 'klikke' knappene er med SendKey.


Etter mye forskning og testing, jeg vet nå nøyaktig hva du vil gjøre, men tror ikke det kan gjøres (uten SendKey). Det ser ut til at det er en feil i Excel, som ikke vil tilbakestille erstatning verdi (fra VBA), uansett hva du prøver og sette den til.

Jeg fant denne 'raskere' måte noen postet på MSDN, slik at du kan gi det et forsøk.

Raskere enn Erstatt

Svarte 28/10/2008 kl. 21:38
kilden bruker

stemmer
2

Du kan bruke denne makroen til å tilbake finne og erstatte. Dessverre, må du ringe dem begge som det er en eller to argumenter som er unike for hver, så hvis du ønsker å tilbakestille alt, er du fast. Det er ingen 'reset', så den eneste måten jeg har funnet er å gjennomføre en falsk Søk og erstatt med standardparameterne.

Sub ResetFind()
    Dim r As Range

    On Error Resume Next  'just in case there is no active cell
    Set r = ActiveCell
    On Error Goto 0

    Cells.Find what:="", _
               After:=ActiveCell, _
               LookIn:=xlFormulas, _
               LookAt:=xlPart, _
               SearchOrder:=xlByRows, _
               SearchDirection:=xlNext, _
               MatchCase:=False, _
               SearchFormat:=False
    Cells.Replace what:="", Replacement:="", ReplaceFormat:=False

    If Not r Is Nothing Then r.Select
    Set r = Nothing
End Sub
Svarte 13/01/2010 kl. 21:15
kilden bruker

stemmer
0

Du trenger ikke å bruke SendKeys du enkelt kan referere til de verdiene du trenger for å tilbakestille dialogboksen verdier.

Sub ResetFindReplace()
   'Resets the find/replace dialog box options
   Dim r As Range

   On Error Resume Next

   Set r = Cells.Find(What:="", _
   LookIn:=xlFormulas, _
   SearchOrder:=xlRows, _
   LookAt:=xlPart, _
   MatchCase:=False)

   On Error GoTo 0

   'Reset the defaults

   On Error Resume Next

   Set r = Cells.Find(What:="", _
   LookIn:=xlFormulas, _
   SearchOrder:=xlRows, _
   LookAt:=xlPart, _
   MatchCase:=False)

   On Error GoTo 0
End Sub
Svarte 26/09/2014 kl. 12:42
kilden bruker

stemmer
0

Jeg testet dette, og det fungerer. Jeg har lånt deler fra noen få steder

Sub RR0()   'Replace Reset & Open dialog  (specs: clear settings, search columns, match case)

'Dim r As RANGE         'not seem to need
'Set r = ActiveCell     'not seem to need
On Error Resume Next    'just in case there is no active cell
On Error GoTo 0

Application.FindFormat.Clear          'yes
Application.ReplaceFormat.Clear       'yes

Cells.find what:="", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext
Cells.Replace what:="", Replacement:="", ReplaceFormat:=False, MatchCase:=True    'format not seem to do anything
'Cells.Replace what:="", Replacement:="", ReplaceFormat:=False    'orig, wo matchcase not work unless put here - in replace

'If Not r Is Nothing Then r.Select    'not seem to need
'Set r = Nothing

'settings choices:
'match entire cell:  LookAt:=xlWhole,  or:  LookAt:=xlPart,
'column or row:      SearchOrder:=xlByColumns,  or:  SearchOrder:=xlByRows,

Application.CommandBars("Edit").Controls("Replace...").Execute   'YES WORKS
'Application.CommandBars("Edit").Controls("Find...").Execute   'YES same, easier to manipulate
'Application.CommandBars.FindControl(ID:=1849).Execute        'YES full find dialog

'PROBLEM: how to expand options?
'SendKeys ("%{T}")   'alt-T works the first time, want options to stay open

Application.EnableEvents = True           'EVENTS

End Sub
Svarte 13/12/2014 kl. 11:02
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more