Vid installation av office satt jag och lekte lite med words developer-funktioner och kom på något jag reagerat på förut och fortfarande inte lärt mig. Fetmarkerat:
Här stöter vi dock på patrull:
Är det någon här som kan förklara hur VB/VBA egentligen hanterar strängar som siffror? Är det generellt gångbart eller något specifict för just VB?
Anledningen till frågan är att jag vet att jag vid tillfällen utfört matematiska operationer på strängar - och har heller inte någonsin stött på problem, men eftersom jag inte vet hur det fungerar har jag varit lite nojig. Inte helt sällan kan det vara rätt katastrofalt om några begränsningar kan generera fel svar, eftersom problemet då ofta är helt dolt. D.v.s. buggen upptäcks först under årsredovisning eller något annat kul.
Kod:
Detta fungerar som det ska, vilket innebär att strängen loop_ antingen kan tolkas som en int eller att det fakiskt görs om till en int (alternativt något annat om mer minne krävs). Jag förusätter det förstnämnda eftersom det låter ganska hazard att lite godtyckligt kasta om programmerarens allokeringar.Sub Whatevs()
Dim Word_ As String
Dim loop_ As String
Word_ = InputBox("Please write something")
loop_ = InputBox("How many times do you want to write this?")
If Not IsNumeric(loop_) Then
MsgBox (loop_ & " is not a number dummy!")
Exit Sub
End If
For i = 1 To loop_
Selection.TypeText Word_
Next i
End Sub
Här stöter vi dock på patrull:
Kod:
D.v.s. en sträng kan användas som en int men inte tvärt om. Dim loop_ As Integer loop_ = "HEJ!"
Är det någon här som kan förklara hur VB/VBA egentligen hanterar strängar som siffror? Är det generellt gångbart eller något specifict för just VB?
Anledningen till frågan är att jag vet att jag vid tillfällen utfört matematiska operationer på strängar - och har heller inte någonsin stött på problem, men eftersom jag inte vet hur det fungerar har jag varit lite nojig. Inte helt sällan kan det vara rätt katastrofalt om några begränsningar kan generera fel svar, eftersom problemet då ofta är helt dolt. D.v.s. buggen upptäcks först under årsredovisning eller något annat kul.