Excel 2010 / VB- Loop fino a quando non viene trovato alcun risultato

  • Problema
  • Soluzione

Problema

Sto cercando di manipolare i dati da un programma DOS molto vecchio. Ho una lunga macro che funziona bene fino alla fine dove si trova per alcune parole specifiche e cicli che eliminano le righe con queste parole fino a quando non riesce a trovare nulla, quindi si presenta con un errore e si ferma. Quello che sto cercando di fare è che lo script continui a funzionare fino a quando non trova più istanze delle parole di ricerca e poi prosegue nella parte successiva dello script che vogliamo scrivere.

Ecco il ciclo di codice in cui si blocca:

 Dim lCount As Long Dim lNum As Long lCount = 0 lNum = 11 Application.ScreenUpdating = False Do While lNum> 10 Columns ("B: B"). Seleziona Selection.Find (Cosa: = "CE - Parish Current", After: = ActiveCell, LookIn: = xlFormulas, _ LookAt: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, _ MatchCase: = False, SearchFormat: = False). Attiva 'ActiveCell.Seleziona ActiveCell.Offset (-1, 0) .Seleziona Selection.EntireRow.Delete Selection.EntireRow.Delete Selection.EntireRow.Delete Selection.EntireRow.Delete Selection.EntireRow.Delete Selection.EntireRow.Delete Selection.EntireRow.Delete Selection.EntireRow.Delete Selection.EntireRow.Delete Loop 

Vogliamo fare questa stessa funzione in pochi altri script che abbiamo scritto e il mio capo e io siamo entrambi novizi in questo modo qualsiasi aiuto che potresti essere in grado di offrire è molto apprezzato!

Soluzione

Il codice dice

 Do While lNum> 10 

Quindi quando lNum diventa mai inferiore o uguale a 10 per terminare il ciclo

Dal momento che non hai fornito tutte le informazioni, questa è la soluzione più logica

 Do While True Set Cell = Columns (2) .Find (Cosa: = "CE - Parish Currently", _ After: = Celle (1, 2), _ LookIn: = xlFormulas, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ SearchDirection: = xlNext, _ MatchCase: = False, _ SearchFormat: = False) Se la cella non è nulla, quindi Esci Cella.EntireRow.Delete Loop 

Grazie a rizvisa1 per questo suggerimento.

Articolo Precedente Articolo Successivo

I Migliori Consigli