Avatar billede Simonjulandreasen Nybegynder
14. februar 2012 - 10:15 Der er 7 kommentarer og
1 løsning

Hvor er fejlen i denne simple excel makro

Hej håber i kan hjælpe

Jeg har en excel marko kode  som hedder
Public TimerArray(100, 3) As Variant

Sub SetTime()

Dim j As Integer
   
    j = Int(Mid(Application.Caller, InStr(1, Application.Caller, " ") + 1, Len(Application.Caller) - 8))

    If TimerArray(j, 1) Then
   
            TimerArray(j, 1) = False    'Prepares for New Lap
            TimerArray(j, 3) = Now() - TimerArray(j, 2) 'FinishTime
            ActiveSheet.Range("C1").Offset(j, 1) = TimerArray(j, 3)
           
    Else
            TimerArray(j, 1) = True
            TimerArray(j, 2) = Now() 'StartTime
            ActiveSheet.Range("C1").Offset(j, 0) = TimerArray(j, 2)
            ActiveSheet.Range("C1").Offset(j, 1) = ""
    End If

End Sub

Sub Initialize_SetTimerArray()

Dim i As Integer

    For i = 1 To 25
   
        TimerArray(i, 1) = False 'Timer startet
        TimerArray(i, 2) = 0    'Starttime
        TimerArray(i, 3) = 0    'FinishTime
     
    Next i

End Sub


Jeg indsætter denne i et module. indsætter et billed som en knap og kalder den "billed 1". Starter så mine 2 makro som hedder:

Initialize_settimerarray
SetTime

Når jeg kør SetTime skrive den : Runtime Error 13, Type Mismatch

og fremhæver følgende linje: 

j = Int(Mid(Application.Caller, InStr(1, Application.Caller, " ") + 1, Len(Application.Caller) - 8)) 

Håber meget i kan hjælpe!

MVH Simon
Avatar billede claes57 Ekspert
14. februar 2012 - 10:35 #1
i asp er det cint (konverter til integer) - og ikke bare int.
Avatar billede Simonjulandreasen Nybegynder
14. februar 2012 - 10:42 #2
j = Integer(Mid(Application.Caller, InStr(1, Application.Caller, " ") + 1, Len(Application.Caller) - 8))


Således eller ?
Avatar billede Simonjulandreasen Nybegynder
14. februar 2012 - 10:43 #3
Når jeg ændre det til ovenstående lyser linjen bare rød?
Avatar billede Simonjulandreasen Nybegynder
14. februar 2012 - 10:50 #4
Skærmbilled vist her

http://gratisupload.dk/vis/673888/
Avatar billede claes57 Ekspert
14. februar 2012 - 10:55 #5
har du prøvet med
j = CInt(Mid(Application.Caller, InStr(1, Application.Caller, " ") + 1, Len(Application.Caller) - 8))
Avatar billede kabbak Professor
14. februar 2012 - 10:57 #6
j = Int(val(Mid(Application.Caller, InStr(1, Application.Caller, " ") + 1, Len(Application.Caller) - 8)))
Avatar billede Simonjulandreasen Nybegynder
14. februar 2012 - 11:22 #7
Problemt løst.

Jeg tog og sagde gem som til det ark hvor makroen havde sin oprindelse

også bygged jeg arket op fra ny hvor koderne så lå der med det samme

tak for hjælpen!

i må geren få point hvis i vil
Avatar billede Simonjulandreasen Nybegynder
15. februar 2012 - 10:21 #8
i vil åbenbart ikke have de point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester