Zresetuj opcje okna dialogowego Znajdź i zamień programu Excel


Jak programowo zresetować opcje okna dialogowego
Znajdź i zamień
programu Excel do ich ustawień domyślnych („znajdź co”, „zamień na”, „w”, „wyszukaj”, „zajrzyj do”, „dopasuj wielkość liter” , „dopasuj całą zawartość komórki”)?
Używam
Application.FindFormat.Clear
i
Application.ReplaceFormat.Clear
, aby zresetować wyszukiwanie i zastępowanie komórek formatów.
Co ciekawe, po użyciu
Expression.replace (Znajdź, Wymiana, Wymiana, Po Wymasach, Wholeworts)
String
Znajdź
Wyświetlany w
Znajdź i wymień
Dialog, ale Nie ma parametru <codewhat <="" <codeewhat="" code="">.
</codewhat>
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz użyć tego makra, aby zresetować znalezisko & amp; ZASTĄPIĆ. Niestety, musisz zadzwonić do nich oboje, ponieważ jest jeden lub dwa argumenty, wyjątkowe dla wszystkich, więc jeśli chcesz stracić wszystko, utknąłeś. Nie ma "resetowania", więc jedyny sposób, w jaki znalazłem, jest uzupełnienie fałszywej wymiany wyszukiwania & amp; Za pomocą domyślnych parametrów.
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
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz użyć następującego polecenia, aby otworzyć okno dialogowe Wymień z polami wypełnionymi:

Application.Dialogs (xlDialogFormulaReplace) .show-arguments tutaj

-
lista argumentów to
Wyszukaj ciąg, zwrot_text, look_at, look_by, active_cell, match_case, match_byte
Jak dotąd jedyny sposób na „klikanie” przycisków to SendKey.
Po wielu badaniach i testach wiem teraz dokładnie, co chcesz zrobić, ale nie sądzę, aby można to zrobić (bez SendKey). Wygląda na to, że w programie Excel jest błąd, który nie resetuje wartości zastępczej (z VBA) bez względu na to, co próbujesz ustawić.
Właściwie znalazłem ten `` szybszy '' sposób, w jaki ktoś opublikował w MSDN, więc możesz spróbować.
Szybciej niż wymiana
http://social.msdn.microsoft.c ... a98a/
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Sprawdziłem to i działa. Pożyczyłem szczegóły z kilku miejsc
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 0Application.FindFormat.Clear 'yes
Application.ReplaceFormat.Clear 'yesCells.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 openApplication.EnableEvents = True 'EVENTSEnd Sub
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie ma potrzeby używania sendkeys, można łatwo uzyskać dostęp do wartości potrzebnych do zresetowania wartości w oknie dialogowym.
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

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się