Gå till innehåll

Program som fastnar i vinkelvolten


Mikael63

Recommended Posts

Jag har en mjukvara som bl.a. kan söka och ersätta flera olika värden/texter i flera olika arbetsböcker (Excel) i ett enda svep.

Där hamnar jag i vinkelvolten om jag gör detta val

image.png.8f4157b7ae80b4b0655394887bd5860a.png

Programmet hänger sig totalt.

Om jag däremot använder detta val fungerar det bra

image.png.4aabf2a3db62f7095d324717ac99dd70.png

Att jag har markerat "Endast hela ord" tycks inte hjälpa?

Någon som har en aning om varför det blir så och hur man kan undvika att fastna?
Givetvis torde jag vara ganska ensam om just detta program men själva företeelsen kanske är känd?

Där finns reguljära uttryck att använda, kanske det är en väg?

Om jag kör makro som beskrivs här
https://www.alltomwindows.se/topic/33567-batch-find-and-replace-excel/
fungerar det bra och det är den metod jag använder om det är ett eller ett par värden som ska ändras men om det är fler än så är jag lite för bekväm och vill köra alla i ett svep.

 

Länk till kommentar
Dela på andra webbplatser

Jag kan bara gissa men kanske att programmet även efter att ha ersatt de första "Volvo" fortsätter att söka efter alla "Volvo" och då får match även med den ersatta frasen "Volvo XC70" så det tar aldrig slut med "Volvo" som ska ersättas.

Under förutsättning att jag har gissat rätt på vad "fastna i vinkelvolten" ska betyda för det är ett uttryck som jag inte har hört förut.

Länk till kommentar
Dela på andra webbplatser

Jag gissar att "Hela ord" inte betyder samma sak som "hela cellen"/"hela frasen". Typ att "hela ord" skiljer på volvo och volvoxc70, men inte på volvo och volvo  xc70. Och då kan du nog fastna i en loop med ovanstående upplägg. 

Jag vet inte hur ditt specialprogram läser excelfilerna. Om jag öppnar en excelfil i en texteditor så kan jag inte se hur cellavgränsarna ser ut (innehållet verkar vara komprimerat, även i en "moderna" xlsx fil). Annars skulle man kunna tänka sig att du sökte efter:

<tab>volvo<tab>

för att få en hel fras, typ.

  • Like 1
Länk till kommentar
Dela på andra webbplatser

5 timmar sedan, Cecilia sade:

Under förutsättning att jag har gissat rätt på vad "fastna i vinkelvolten" ska betyda för det är ett uttryck som jag inte har hört förut.

se https://www.youtube.com/watch?v=mhGQIQOSw_8 ;)

 

4 timmar sedan, MH_ sade:

Jag gissar att "Hela ord" inte betyder samma sak som "hela cellen"/"hela frasen". Typ att "hela ord" skiljer på volvo och volvoxc70, men inte på volvo och volvo  xc70. Och då kan du nog fastna i en loop med ovanstående upplägg. 

Ja, nu när man läser så verkar det ju ganska logiskt vad "Whole word" (som det står i original) avser.

4 timmar sedan, MH_ sade:

Jag vet inte hur ditt specialprogram läser excelfilerna. Om jag öppnar en excelfil i en texteditor så kan jag inte se hur cellavgränsarna ser ut (innehållet verkar vara komprimerat, även i en "moderna" xlsx fil). Annars skulle man kunna tänka sig att du sökte efter:

<tab>volvo<tab>

för att få en hel fras, typ.

Ja det försökte vi klura ut i någon annan tråd.

När man vet om detta får man se till att man söker och ersätter i flera steg men jag kan kanske kolla lite på detta med reguljära uttryck lite mer, senare.

Den inbyggda hjälpen har en hel radda med exempel och inleds med:

Citat

Syntax of regular expressions

As RE engine we use open source engine of Andrew Sorokin (http://anso.virtualave.net). It is very well done and tested engine.

Men vad detta betyder i inställningarna har jag inte klurat ut?

image.png.07f2965d40be563027f08cab2374c3bd.png

 

Redigerad av Mikael63
  • Like 1
Länk till kommentar
Dela på andra webbplatser

1 timme sedan, Mikael63 sade:

kan kanske kolla lite på detta med reguljära uttryck

Nej jag fattar inte... Bifogar regler för syntax.

Jag kan konstatera att det inte är det här programmet, AFR, som hänger sig utan det är Excel som gör det. AFR väntar tills Excel är klar och eftersom Excel aldrig blir klar blir väntan lång. Jag kan avbryta processen med Excel och då är AFR med som vanligt igen.

I slutändan kanske det går snabbare att köra Excelmakrot en & en gång i stället. Härnäst skulle det då innebära 18-20 sådana körningar..

 

Advanced_20Find_20and.pdf

Länk till kommentar
Dela på andra webbplatser

Reguljära uttryck är väl mest användbart när du vill bygga komplicerade uttryck med flera delar. T.ex om du vill hitta gamla registreringsnummer. med möstret 3 bokstäver följt av tre siffror.

Syntaxexempel från words möstermatchning:

[A-Ö]{3}[0-9]{3}

Då kan du utvidga med att bokstäverna inte får vara "I" eller vad det nu är som är förbjudet. Dessutom kan du dela upp sökningen i delar och vända på ABC123 till 123ABC om du behöver det. Svenska words namn "mönstermatchning"  är ganska bra

Sök efter: ([A-Ö]{3})([0-9]{3})
Ersätt med: \2\1

(varje parantes blir en egen sökdel och i "ersätt med" klistrar du in sökdel 2 + sökdel )

 

I ditt fall handlar det väl mer om att köra ett antal bestämda sökningar efter varandra. Inte att hitta saker som följer ett mönster. Eller? Då är det bättre att modifiera ditt makro till att hämta sök/ersätt parametrarna någonstans på makrobladet och helt enkelt köra 18-20 sök/ersätt på varje "klient"blad. Dvs kopiera gränssnittet från ditt specialprogram.

Länk till kommentar
Dela på andra webbplatser

6 timmar sedan, MH_ sade:

Då är det bättre att modifiera ditt makro till att hämta sök/ersätt parametrarna någonstans på makrobladet och helt enkelt köra 18-20 sök/ersätt på varje "klient"blad.

Njae!
18-20 sök per arbetsbok som är åtminstone 12 x 15 blir ju många sök! Då är det bättre att jag gör just 18-20 sök och låter makrot göra sök & ersätt i de 180 arbetsböckerna som ligger spridda i flera kataloger med egna underkataloger.

Att, i AFR, söka efter Volvo och ersätta med VolvoXC70 fungerar inte heller.

Ett skarpt exempel.

BFA001 ska ersättas med X.X.XXXX.XX.XX.BFA001
osv. ca 18 till med liknande "syntax"
Detta i 135 arbetsböcker.

Sedan kan det bli.

BFA001 ska ersättas med A.B.ADCF.BG.00.BFA001

Tillägg: Mest troligt är dock att jag kör alla att bli XX osv. och sedan ersätter dessa, några färre, med AB osv.

Listan med ersättningarna låter sig enkelt göras i Excel med ex. =Sammanfoga. Sedan kör jag ett annat makro som skapar en tab-separerad textfil av det jag markerar.
Det makrot har jag fått av en snäll och hjälpsam person 😉

Redigerad av Mikael63
Länk till kommentar
Dela på andra webbplatser

Delta i dialogen

Du kan skriva svaret nu och registrera dig senare, Om du har ett konto, logga in nu för att svara på inlägget.

Gäst
Svara i detta ämne...

×   Du har klistrat in innehåll med formatering.   Ta bort formatering

  Only 75 emoji are allowed.

×   Din länk har automatiskt bäddats in.   Visa som länk istället

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Skapa nytt...