Avatar billede avminarm Juniormester
13. maj 2010 - 22:55 Der er 10 kommentarer og
2 løsninger

igang med VBA

Hejsa

Jeg har fået fat i "Excel 2007 VBA Programming for Dummies" og er fast besluttet på at lære VBA til Excel.

Jeg er imidlertid kommet til et sted hvir flg. indsættes i kodevinduet:

Sub GuessName()
    Msg = "Is your name x"
    Ans = MsgBox(Msg, vbYesNo)
    If Ans = vbNo Then MsgBox "Oh, never mind."
    If Ans = vbYes Then MsgBox "I must be
    clairvoyant!"
End Sub

Jeg får syntax error! hvad er galt? - det er direkte afskrift fra bogen?

Jeg kan programere PHP/sql - men det her fungerer noget anderledes :-)

Hvis der er nogen der har andre gode tips til hvordan jeg kommer igang med VBA - gerne tuts på dansk modtages dette med kyshånd

på forhånd tak.
Avatar billede avminarm Juniormester
13. maj 2010 - 22:56 #1
sorry - det fra bogen er self dette:
Sub GuessName()
  Msg = "Is your name " & Application.UserName & "?"
  Ans = MsgBox(Msg, vbYesNo)
  If Ans = vbNo Then MsgBox "Oh, never mind."
  If Ans = vbYes Then MsgBox "I must be
  clairvoyant!"
End Sub
Avatar billede supertekst Ekspert
13. maj 2010 - 23:03 #2
Sub GuessName2()
  Msg = "Is your name " & Application.UserName & "?"
  Ans = MsgBox(Msg, vbYesNo)
  If Ans = vbNo Then MsgBox "Oh, never mind."
  If Ans = vbYes Then MsgBox "I must be clairvoyant!"  '<-----
End Sub
Avatar billede supertekst Ekspert
13. maj 2010 - 23:05 #3
Eller:

Sub GuessName2()
  Msg = "Is your name " & Application.UserName & "?"
  Ans = MsgBox(Msg, vbYesNo)
  If Ans = vbNo Then MsgBox "Oh, never mind."
  If Ans = vbYes Then MsgBox "I must be" & _    '<----
    " clairvoyant! "                            '<----
End Sub
Avatar billede janmanden Nybegynder
13. maj 2010 - 23:14 #4
Hvis du har indsat koden som vist, så er problemet umiddelbart at der er et linje skift i den sidste del. Og det må da være en total skod bog taget i betragtning af den sjuskede kode.

VBA kan ikke håndtere linjeskift på samme måde som PHP, men skal angives explicit. F.eks.

MsgBox "I must be " _
& "clairvoyant!"

Men ellers var det bedre om eksemplet var lavet som flg.

Sub GuessName()
  Msg = "Is your name " & Application.UserName & "?"
  Ans = MsgBox(Msg, vbYesNo)
  If Ans = vbNo Then
    MsgBox "Oh, never mind."
  ElseIf Ans = vbYes Then
    MsgBox "I must be clairvoyant!"
  End If
End Sub
Avatar billede avminarm Juniormester
14. maj 2010 - 10:10 #5
ok tak til jer begge - underligt for den med linieskiftet havde jeg luret - men igår fik jeg fejl hele tiden, selom jeg rettede linien op??

Fejl output er ikke super nemme at tyde - finder der en måde at få fejlteksterne bedre oversat på? eller er det bare at lære hvad det forskellige betyder?

Har i nogen anbefalinger til tutorials eller bøger?
Avatar billede supertekst Ekspert
14. maj 2010 - 11:57 #6
Selv tak - du får et svar..

Søg på nettet - der er mange muligheder
Avatar billede janmanden Nybegynder
14. maj 2010 - 12:40 #7
Du skulle ta' og hente MSDN Library (Microsoft Developer Network) ned som en lokal installation for den er fuld af gode tips og tricks, kode eksempler og en masse baggrundsstof om alle microsofts produkter og udviklingsværktøj.

Engang skulle man have abonnement for at hente MSDN Libray, men siden engang i 2006 har man kunnet hente den gratis. Det er en ordentlig bøf, men den er også fuld af lækkerier.

Det er vist seneste version og den kan hentes her:

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=7bbe5eda-5062-4ebb-83c7-d3c5ff92a373#filelist
Avatar billede avminarm Juniormester
14. maj 2010 - 14:30 #8
supertekst>> jo tak - men måske lidt for mange muligheder :-) - det kunne jo være at en eller anden lige kendte et godt sted - men tak alligevel

janmanden>> jeg vil straks hente MSDN Library - smider du et svar?
Avatar billede supertekst Ekspert
14. maj 2010 - 14:43 #9
vba for begyndere - hvis du googler denne sætning - så henvises der bl.a. til en guide her på Eksperten.
Avatar billede janmanden Nybegynder
14. maj 2010 - 15:15 #10
Svar til ovenstående.
Avatar billede janmanden Nybegynder
14. maj 2010 - 15:28 #11
Jeg ved ikke lige om Option Explicit er standard i VBA, men det kan da være at den kan hjælpe dig, men så skulle eksemplet have set helt anderledes. Option Explicit angiver at alle variabler skal defineres før brug og kan godt bruges til fejl-finding, men hjælpen er måske bare ikke så god. Jeg bruger en engelsk sproget og under menuen Tools er der et punkt, der hedder options, hvor du slå noget hjælp til. Med option explicit kunne koden se sådan her ud (bemærk at msg og ans er defineret):
----

Option Explicit

Sub GuessName()
    Dim msg As String
    Dim Ans As Boolean
    msg = "Is your name " & Application.UserName & "?"
    Ans = MsgBox(msg, vbYesNo)
    If Ans = vbNo Then
        MsgBox "Oh, never mind."
    ElseIf Ans = vbYes Then
        MsgBox "I must be"
    End If
End Sub
Avatar billede avminarm Juniormester
15. maj 2010 - 10:02 #12
mange tak begge to
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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