PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAKörfel 424Körfel 424
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2012-09-04 04:52
 
 Ändrad av Janne  på 2012-09-04 05:03:20

Hej

Jag har ett Excel-dokument som innehåller ett tiotal kalkylblad.
Flertalet av dom är listor/tabeller i vilka Användare ska välja/markera något.
Ett macro ska sedan bearbeta vald information.

Macrot använder en UserForm för att Användare ska göra ett val:
I UserForm finns en Label och en ListBox, endast. Innehållet i dessa beror av vad som
markerats i Excel-tabellerna. Den informationen levereras till UserForm
via en publik strängvariabel.

Så snart Användare gjort sitt val i UserForm avslutas UserForm. Valet returneras
till macrot via strängvariabeln.

 

Macrot består enkelt uttryckt av en Select Case struktur. I varje Case används UserForm
med instruktionen:  UserForm.Show

Problemet är att det bara fungerar i den första Case som skrevs: Så snart någon annan Case
försöker använda UserForm så kommer ett felmeddelande som säger:  "Körfel nr '424'.: Objekt krävs."

Om någon kan förklara denna besynnerlighet för mig vore jag tacksam.

mvh Janne

Nytt inlägg
 2012-09-07 13:52
 

Hej!

Det intressanta här är vad som står på den rad som genererar felet. Min gissning är att det är i Select Case strukturen som felet uppstår. I så fall kanske det finns en referens till formuläret som dött när formuläret stängts, dvs formuret skapas vid en punkt i koden. Allt är frid och fröjd. Formuläret för sig tilldelat värden till strängvariabeln osv... allt fungerar tills användaren får se formuläret OCH stänger det. För när det stängs så dödas referensen och när referensen sedan används så finns inte objektet längre. Det är vad jag tror baserat på det du skriver.

 

mvh

 


Kihlman

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Nytt inlägg
 2012-09-07 13:56
 

Hej igen Janne!

Du ville ha en förklaring till besynnerligheten, men just som jag skickat mitt svar så inser jag att du förmodligen även vill ha en lösning?

Lösningen är att i koden för formuläret lägga in en bevakning av händelsen att någon stänger formuläret (query close). När någon försöker stänga skall man istället skriva cancel = true och sedan skriva me.hide. Då döljs formuläret men lever fortfarande. Nästa gång det används så finns det kvar som objekt. Nackdelen är då att eventuella ifyllda värden fortfarande finns kvar. Vill man undvika det kan man bevaka händelsen Activate i formuläret och i samband med activate rensa saker som man inte vill ha ifyllda. Förmodligen har du redan en activate som ställer in rullgardinen du nämnde...


Kihlman

Excelforum drivs av Excelspecialisten som bedriver utveckling av program, utbildning samt support och hjälp i Excel och VBA.

www.excelspecialisten.se

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAKörfel 424Körfel 424

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter