13. maj 2010 - 22:55Der 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
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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
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
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
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
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?
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:
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
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.