Just nu i M3-nätverket
Gå till innehåll

Random fungerar ej


Joshen74

Rekommendera Poster

Jag bifogar ett utdrag ur en större funktions samling där jag bla behöver välja ut 4 av 7 frågor, kopier och döpa om dessa från 1 -4 .

 

Om jag inte döper om flikarna verkar random funka, men om jag döper om dom får jag samma värden från random varje gång

 

 

    	ThisWorkbook.Worksheets(ThisWorkbook.Sheets.Count).Name = "Fraga " & i

 

Jag har själv slut på ideer och hoppas på era friska

 

/Joshen

Problem sokningRand2.zip

Länk till kommentar
Dela på andra webbplatser

Om fliknamnen är ditt största problem så addressera det absoluta namnet (faktiskt namn) istället för det relativa (ditt dopnamn).

Dvs, istället för worksheet"xxxx" skriver du antingen sheet1 eller sheets(1) för adressering, den senare är att föredra.

du kan då även välja en variabel som nr, exemepelvis, "i" som i exemplet ovan, vilket då blir, sheets(i). Därefter kan du välja vilken ordning, om du vill även vill slumpa ordningen i ditt redan slumpmässiga urval, mm.

hoppas detta funkar för dig.

Länk till kommentar
Dela på andra webbplatser

Nja det är väl inte fliknamnet som är mitt problem egenterligen, mitt problem är att när jag har denna rad (eller en med sheets istället) så ger min funktion "GetRand" samma värden varje gång.

 

Om jag däremot kommenterar bort namnbytes raden får jag hyfsat radomiserat resultat.

 

Resultatet skrivs ut på flik xxxx för att man ska få översikt

 

Mitt senaste resultat:

jag fick 2456 10 ggr i rad när jag har med raden för namnbyte

 

utan raden fick jag resultat: 2456, 3467 ,2456, 2567

 

förstår mig inte på hur detta fungerar, det verkar dessutom inte bli riktigt randomiserat

Om funktionen förs separat blir resultatet i stort sett lika på mängder med 1000-20000 rader

 

...

Kanske skulle fundera på att göra random funktionen först så att allt är klart innan något annat kan störa.

Vi får se hur det går

Länk till kommentar
Dela på andra webbplatser

hmm, klurigt, men det låter som en bra idé att testa random först.

vill minnas när man satt med Delphi för tio år sedan fick vi ibland göra random för vilket värde vi skulle starta på innan vi kunde köra slumpmässigt urval. Annars startade random på samma startvärde hela tiden och ditt proplem låter snarlikt, men behöver inte vara det.

hoppas att det är någon annan som har en bättre lösning eller förklaring på ditt problem.

Länk till kommentar
Dela på andra webbplatser

Mitt tips i detta fall är att bryta ut slump-funktionen till en egen funktion. Dvs skapa en funktion som ska returnera ett slumptal, börja med att låta den ge en enkel unik siffra, säg att den kollar stegar från 1 och uppåt men kollar innan retur om blad vid givet namn finns.

 

Ändra sedan detta till en ren slump-funktion som gör exakt lika, om det genererade värdet inte är unikt slumpa om.

 

Med andra ord, flytta ut det som bråkar i en egen funktion och säkerställ att denna funktion fungerar.

 

Låter väl enkelt?

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...