Imposta Excel per la ricerca nell'intera cartella di lavoro per impostazione predefinita


12

In Microsoft Excel, quando cerco utilizzando CTRL+ F, per impostazione predefinita cerca solo nel foglio di lavoro corrente.

Come posso impostarlo per la ricerca nell'intera cartella di lavoro per impostazione predefinita? Io ho Office 2010. È possibile? È possibile impostarlo per una cartella di lavoro o un foglio di lavoro specifici? Sto bene con una modifica del registro se è quello che serve.

Nota: quasi 10 anni dopo, mi piacerebbe ancora farlo, ma ora per Excel 2016/2019.

Risposte:


3

Puoi farlo con una macro Workbook_Open nel modulo ThisWorkbook, in questo modo:

Private Sub Workbook_Open()

Application.CommandBars.FindControl(ID:=1849).Execute
SendKeys "%(t)%(h)W~{ESC}"

End Sub

Questo lo imposterà per la sessione per la cartella di lavoro in cui ti trovi.

Per avere sempre questo valore predefinito è necessario creare una cartella di lavoro Macro personale .


1
Preferirei non usare una macro per questo.
Joel Coehoorn,

2
@Joel, le impostazioni sarebbero molto probabilmente memorizzate nel file .pip per Excel, che è facile da trovare, ma è in formato binario, e non sono in grado di trovare un editor specifico per esso (sarebbe un grande progetto). Probabilmente potresti ottenere un editor esadecimale standard e risolverlo, ma sarebbe un progetto.
Lance Roberts,

2

Ho incluso una modifica, quindi funzionerà se Excel è in spagnolo (come il mio)

Private Sub Workbook_Open()

Dim lCountryCode As Long
lCountryCode = Application.International(xlCountryCode)

Application.CommandBars.FindControl(ID:=1849).Execute

Select Case lCountryCode
Case 34 'spanish
    SendKeys "%(p)%(D)L~{ESC}"
Case Else 'default english
    SendKeys "%(t)%(h)W~{ESC}"
End Select


End Sub

0
  1. Seleziona l'icona Trova / Seleziona nella barra multifunzione Home

  2. Fai clic su Trova

  3. Fai clic sulla casella "opzioni" in basso a destra

  4. Sul lato sinistro ha un menu a discesa che dice "All'interno"

  5. Seleziona "Foglio" o "Cartella di lavoro"

Questo sito spiega come modificare l'impostazione predefinita


1
Questo non funziona, per due motivi. Innanzitutto, questa opzione non viene salvata con ciascun documento. Apri un foglio di calcolo, apporta le modifiche, salva il foglio di calcolo, chiudi Excel , riapri il foglio di calcolo ed è tornato com'era. In secondo luogo, anche se è stato salvato con il documento, devo aprire molti documenti che non sono stati creati sulla mia macchina e quindi avrebbero l'impostazione (errata) dalla macchina originale in cui sono stati creati.
Joel Coehoorn,

0

I comandi di Sendkeys come suggeriti da altre risposte non sono incoraggiati. In passato il comando Sendkeys ha comportato azioni molto impreviste, in cui potrebbe essere necessario riavviare il computer per ripristinare. Consiglierei di rendere locale la routine ed eseguirla solo su richiesta. Per comodità, puoi anche assegnare un tasto cntl come "q". L'opzione Cartella di lavoro all'interno verrà ricordata per il saldo della sessione.

Sub myFind()
  Application.CommandBars.FindControl(ID:=1849).Execute
  SendKeys "%(t)%(h)W~+{Tab}+{Tab}"
End Sub

0

Ho avuto un problema simile. Ho un pulsante in una cartella di lavoro. Se si fa clic sul pulsante Voglio che Excel apra la finestra di dialogo Trova con l'opzione "Cerca in tutte le cartelle di lavoro" già selezionata anziché l'impostazione predefinita "all'interno del foglio", qualunque cosa accada.

Inoltre, volevo che il pulsante funzionasse a prescindere che le opzioni fossero nascoste o mostrate e che qualcuno avesse apportato modifiche manualmente. Questo è complicato perché Excel per impostazione predefinita non mostra le opzioni all'avvio ma le ricorda e le mostra nuovamente la volta successiva se qualcuno le visualizzava prima.

Per assicurarsi che i tasti premuti abbiano bisogno di una serie di tasti che imposta l'impostazione indipendentemente dallo stato iniziale. Ci sono voluti un po 'di armeggiare, ma ne ho trovato uno che funziona.

Ecco il mio codice per la versione inglese di Excel, per altre lingue devi cambiare le chiavi di conseguenza.

 Sub Commanbutton_Click()

      Cells(1, 1).Select

       SendKeys "^f", True
       SendKeys "{TAB 15}"
       SendKeys " ", True
       SendKeys "%t%t", True
       SendKeys "{TAB 2}", True
       SendKeys "{DOWN}{DOWN}{ENTER}", True
       SendKeys "%t%t", True

  End Sub

Puoi provarlo manualmente:

Premi CTRL + F per la finestra di dialogo Trova Premi TAB 15 volte in modo da atterrare su "Opzioni" o sul menu a discesa "Cerca all'interno".

Premere spazio e uno dei due

1) Vengono visualizzate le opzioni o 2) il menu a discesa viene attivato e non accade nulla

Premere Alt + T due volte per ripristinare il cursore sulla casella di input Trova

Premi TAB due volte, ti porterà alla ricerca all'interno del menu a discesa, non importa quale (poiché i passaggi precedenti assicurano che le opzioni siano effettivamente visualizzate!)

Premere due volte la freccia GIÙ per selezionare "Cartella di lavoro" e INVIO per selezionare

Premere ALT + T due volte per ripristinare nuovamente il cursore sulla casella di input Trova.

Spero che questo aiuti qualcun altro che ha un problema simile. Molti googling mi hanno detto solo che non è possibile preselezionare "cerca in tutte le cartelle di lavoro" con VBA, ma funziona in questo modo!

Per farlo funzionare con lingue diverse, è necessario controllare la lingua e utilizzare CASE per passare alla routine corretta con le scorciatoie appropriate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.