19. juli 2002 - 09:57Der er
17 kommentarer og 1 løsning
HASTER.... VBA i Excel
Ve dkørsel af en lille macro på et stort Excel ark går der ged et eller andet sted i scriptet. Hvordan kan jeg i min debugger se hvilken celle den er stoppet ved.?
Hvis række- og kolonnenumre styres af variable, kan du prøve at holde musen hen over variabelnavnene - så vises de aktuelle værdier (altså umiddelbart før makroen gik i stå) i en lille gul label.
Hvis du vil have et mere konkret svar, så er vi nødt til at se din makro.
Når jeg starter Macroen suser den afsted i måske 7 sek hvorefter den kommer med en debug. Men den kan jo på disse 7 sek have taget adskillige poster, hvorfor jeg gerne konkret vil vide hvilken celle den ikke forstår.
Tryk Ctrl+G så du får debuggeren frem. Her kan du f.eks. skrive ? C.Address (og trykke enter)
denne resulterer ? C.Address $E$3
vil det sige at det er kolonne E celle 3 ? fordi heri står der =-SIDSTE ÅR hvilket macroen ikke skulle behandle da dette ikke er forudsat i regelsættet i macroen
b_hansen : Jeg skal lige for en god ordens skyld sige at arket ligeledes indeholder tekst og derfor kan jeg ikke bruge testen til noget.
Macroen burde vel også være ligeglad med formatteringen idet den bare tager en celle og såfremt det sidste tegn i denne celle er '-' laver den cellen om. Jeg ved godt at man ikke kan gange med en tekst såsom 'blå' men det har virket ved et tidligere ark af lign. karakter.
Du kunne ændre din If-sætning, så du checker på, om celle indholdet er en værdi! For Each c In xrange If IsNumeric(c.Value) Then c.Value = Val(c) * -1 End If Next
Jeg ville selv have skrevet det således: Dim rCell As Range For Each rCell In ActiveSheet.UsedRange With rCell If IsNumeric(.Value) Then .Value = .Value * - 1 End If End With Next rCell
Jeg tror nok jeg ville kombinere dem lidt, for flemmings ide er god, men den ændrer fortegnet. :-)
Dim xrange As Range Dim c As Range Set xrange = ActiveSheet.UsedRange For Each c In xrange If IsNumeric(c.Value) And Right(c, 1) = "-" Then c.Value = Val(c) * -1 Next
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.