Excel 2010 / VB-Loop, kunnes tuloksia ei löydy

  • Ongelma
  • Ratkaisu

Ongelma

Yritän manipuloida hyvin vanhan DOS-ohjelman tietoja. Minulla on pitkä makro, joka toimii hyvin loppuun asti, jolloin se etsii joitakin tiettyjä sanoja ja silmukoita, jotka poistavat rivit näillä sanoilla siihen asti, kunnes se ei löydä mitään, ja sitten tulee virhe ja pysähtyy. Se, mitä yritän tehdä, on saada komentosarja jatkamaan toimintaansa, kunnes se ei enää löydä hakusanojen esiintymiä ja jatkaa sen jälkeen seuraavaa komentosarjan osaa, jonka haluamme kirjoittaa.

Tässä on koodaussilmukka, jossa se jää kiinni:

 Dim lCount As Long Dim lNum As Long lCount = 0 lNum = 11 Application.ScreenUpdating = False Do kun lNum> 10 saraketta ("B: B"). Valitse Selection.Find (Mitä: = "CE - Parish Tällä hetkellä", jälkeen: = ActiveCell, LookIn: = xlFormulas, _ LookAt: = xlPart, SearchOrder: = xlByRows, SearchDirection: = xlNext, _ MatchCase: = False, SearchFormat: = False). Aktivoi 'ActiveCell.Valitse ActiveCell.Offset (-1, 0) Valitse valinta. 

Haluamme tehdä tämän saman tehtävän muutamassa muussa kirjoitusasiakirjassa, jonka olemme kirjoittaneet ja pomoni ja minä olemme molemmat aloittelijoita, joten jokainen apu, jota voisitte tarjota, on hyvin arvostettu!

Ratkaisu

Koodi kertoo

 Tee kun lNum> 10 

Joten milloin lNum tulee aina pienemmäksi tai yhtä suureksi kuin 10 lopettaaksesi silmukan

Koska et ole antanut kaikkia tietoja, tämä on mielestäni kaikkein loogisin ratkaisu

 Tehdä vaikka todellista asetussolua = sarakkeita (2) .Saat (Mitä: = "CE - seurakunta tällä hetkellä", _ jälkeen: = solut (1, 2), _ LookIn: = xlFormulas, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ SearchDirection: = xlNext, _ MatchCase: = False, _ SearchFormat: = False) Jos solu ei ole sitten Poistu Do Cell.EntireRow.Delete Loop 

Kiitos rizvisa1: stä tästä vinkistä.

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä