Avatar billede bluestrike Nybegynder
17. oktober 2003 - 09:04 Der er 10 kommentarer og
1 løsning

Timer error? Har brug for hjælp.

Jeg ville meget gerne lave en telefonbog i et Excelark, hvor det er muligt at søge via filtre ved bare udenvidere at skrive på tastaturet. Dette ville jeg i Java eller eller C++ lave med keylisteners. I Visual Basic har jeg læst mig til at det kan lade sig gøre ved at oprette en timer og så kalde en rutine der lytter efter keypresses.
Har kigget lidt på denne kode:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Sub auto_open()
    Application.OnKey "{F12}", "Form_Load"
End Sub
Private Sub Form_Load()
  Timer1.Interval = 50
End Sub
Private Sub Timer1_Timer()
Dim i, KeyResult As Integer
  For i = 0 To 255
  KeyResult = GetAsyncKeyState(i)
    If KeyResult = -32767 Then
      If i = 122 Then
        MsgBox "F11"
      End If
    End If
  Next i
End Sub

Nu når jeg prøver at starte timeren får jeg en Object requiered error, er der nogen der kan hjælpe!! :o(
På forhånd tak.
Avatar billede martin_moth Mester
17. oktober 2003 - 09:10 #1
Hvor får du din fejlmeddelse - i hvilken linie. Har du husket at smide en timerkontrol på din form?
Avatar billede bluestrike Nybegynder
17. oktober 2003 - 09:17 #2
Jeg får den i Timer1.Interval... Det gør jeg uden tvivil fordi jeg ikke har en timerkontrol... Men hvordan addere jeg sådan en... og jeg skal have en UserForm for at bruge timeren??
Avatar billede martin_moth Mester
17. oktober 2003 - 09:20 #3
Øhh - ja, du skal have en timerkontrol for at bruge den... Læg mærke til den meget præcise fejlbesked VBA giver dig:

"Object Required" i linien hvor du bruger egenskaben ".Interval". Det er fordi "Timer1" ikke er et objekt, og derfor kan du ikek bruge .Interval på den....

Muligvis kan du nøjes med at dimme den - altså noget i retning af
Dim Timer1 as Timer
Avatar billede bluestrike Nybegynder
17. oktober 2003 - 09:32 #4
Nope User-Defined type siger den så. Men en timer er vel så noget man skal have mulighed for at addere til sin form. Jeg har set en del VB forms med forskellige objecter på, også en masse objecter som jeg ikke har mulighed for at addere til min. Bl.a. Timeren, Comporte o.s.v.. hvad kan grunden være til at jeg mangler disse objecter i min toolbox?
Avatar billede martin_moth Mester
17. oktober 2003 - 09:43 #5
Hmm - findes der ikke en timer til VBA? 2 sek...
Avatar billede bluestrike Nybegynder
17. oktober 2003 - 09:44 #6
Det kan godt være der gør.. men jeg så ikke har adderet den rigtige pakke...
Avatar billede martin_moth Mester
17. oktober 2003 - 09:45 #7
HA - Timerkontrollen er åbenbart en del af VB6, men ikke VBA - jeg har den heller ikke, og kan ikke finde den under additional controls. Jeg ved der er en masse kontroller der ikke findes i VBA som findes i VB6, og Timerkontrollen er åbenbart en af dem, ser det ud til (eller så kan jeg ikke finde den)
Avatar billede martin_moth Mester
17. oktober 2003 - 09:46 #8
Dit spørgsmål skal nok omformuleres til: "Hvordan kan man bruge en Timerkontrol i VBA til Excel"
Jeg har ikke forstand på om man kan tilføje den fra en eller anden VB-fil...
Avatar billede bluestrike Nybegynder
17. oktober 2003 - 09:46 #9
:-( Det vil sige jeg ikke kan benytte den... DAMN! Har du så en anden god ide til hvordan min ide kan føres ud i livet...
Avatar billede bluestrike Nybegynder
17. oktober 2003 - 09:50 #10
oki, jeg prøver det.
Avatar billede martin_moth Mester
17. oktober 2003 - 09:53 #11
Ja - der er jo en keypress event indbygget i Excels VBA (altså uden noget API-kald som du har gang i)

Der er vist noget på eksperten, se fx. her:

http://www.eksperten.dk/spm/352780

Men det kræver at der er fokus på formen, så det kan du sikkert ikek bruge. Giver op
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