13. februar 2012 - 12:00Der er
14 kommentarer og 1 løsning
2 makroer til en knap
Hej
Jeg er helt ny herinde, så jeg håber jeg gør det rigtigt denne gang? Og afgiver jeg ikke de rigtige point+ Beklager jeg også dette.
Jeg sidder med en opgave, hvor jeg ved hjælp af en makro, skal have én knap til, ved første tryk at ændre 0 til 1 og ved tryk igen, ændre samme 1 tilbage til 0.
Jeg er ikke specielt erfaren med VBA, men kan lidt.
for at du skal have det til at fungere, bliver du nød til at smide en variable i en af cellerne i dit regneark, for ellers vil det altid kun huske at den skal gå fra 0 til 1 når du trykker på knappen....
Programmet husker ikke variableværdierne når der "slukkes" for det, så det er derfor du skal smide konstanten i arket.
sub knap if sheets("Ark1").range("aa1")=1 then sheets("Ark1").range("aa1")=0 goto kode x end if
if sheets("Ark1").range("aa1")=0 then goto xxy sheets("Ark1").range("aa1")=1 goto kode y end if
msgbox("fejl i celle AA1") sheets("Ark1").range("aa1").select
exit sub
--------------- kode x og kode y er det de skal lave når du henholdsvis tænder og slukker for knappen. konstanten placeres i celle AA1. hvis du kommer til at skrive noget i celle aa1, som ikke er 1 og 0er, så vil koden stoppe og fortælle dig at der er en fejl i celle aa1 og så vil den flytte musen derhen.
Kode X og kode Y sættes som "kalde navne" i koden den efterfølgende kode. du kan også kalde den noget helt andet, hvis det giver større mening for dig. huske at sætte ":" når du sætter den i teksten.
Hvorfor den melder syntex fejl, er fordi du ikke har en henvisning i den efterfølgende kode der hedder kode x og kode Y, men sæt den og det vil kører.
Makroen brokker sig stadig lidt. Jeg har sat anførselstegn, som jeg mener du har foreskrevet dem. Nu melder den Expected: end of statement, hvilket helt sikkert betyder, at jeg ikke har indsat dem rigtigt. Kan du fortælle mig, hvor det går galt?
Jeg har kun en måneds erfaring med at bruge VBA koder...
Sub knap()
If Sheets("Ark1").Range("AA1") = 1 Then Sheets("Ark1").Range("AA1") = 0 goto kode "y" End If
If Sheets("Ark1").Range("aa1") = 0 Then GoTo xxy Sheets("Ark1").Range("aa1") = 1 goto kode "x" End If
MsgBox ("fejl i celle AA1") Sheets("Ark1").Range("aa1").Select
Exit Sub
Endnu engang tak for hjælpen. Jeg har siddet fast i opgaven i en uge.
Og hvordan får man så lukket spørgsmålet ned? Og givet point?
Synes godt om
Ny brugerNybegynder
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.