14. september 2011 - 11:14Der er
8 kommentarer og 1 løsning
VBA: "error 6 overflow"
Jeg skal til en graf anvende et/flere binært tal. Jeg er i denne forbindelse udfordret på en fejlmeldning i VBA på overflow error 6. Jeg oplever ingen problemer, når jeg fx vil gange de to tal, men ved brugen af AND, så går det galt. Har forsøgt at læse lidt fra tidligere lign. spørgsmål, men er ikke kommet i hus udover at det måske er noget med 32bit er maks og jeg kommer over 32 bit her (og jeg er altså ingenlunde programmeringsekspert)
Min kode ser således ud:
Dim var1 As Double Dim var2 As Double Dim var3 As Double Dim Antal As Integer
Hvis der i celle cells(1,8) (celle H1) eksempelvis står tallet 3 ? Og hvis du bytter dit AND i fjerdesidste linie ud med +, så vil resultatet af din kode være, at cellerne C1, C2 og C3 får tildelt værdien 5368709120 ... hvilket er summen af 2^32 + 2^30.
AND fungerer, som et bit wise and... Det kan nok næsten bedst forstås ved eksemplerne nedenfor.
Binært for 8 er jo 1000 Binært for 10 er jo 1010
Derved bliver AND 1000, altså 8 (her er cifre 4 begge 1'ere)
Binært for 2 er jo 10 Binært for 4 er jo 100
Derved bliver AND 000, altså 0 (her er ingen cifre begge 1'ere)
Binært for 10 er jo 1010 Binært for 18 er jo 10010
Derved bliver AND 00010, altså 2 (her er 2. cifre begge 1)
Binært for 19 er jo 10011 Binært for 11 er jo 1011
Derved bliver AND 00011, altså 3 (her er 1. og 2. cifre begge 1)
Håber det kan forstås. Problemet er bare, at den kun kan klare det op til tallet 2^32 minus 1. Så kan funktionen ikke håndteres herefter uden overflow...
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.