添付されたコードはVBAで実行されますが、なぜエラーがあるかはわかりません。 if文ですべての終わりに一致していると確信しています。EXCEL VBAユーザー定義関数 - elseなしif
Sub teee()はdecimalize関数をテストするためのものです。コードを大幅にチェックして、私のコードに何が間違っているか教えてください...私はこの機能のトラブルシューティングができれば、プロジェクトを完了するのにほとんど終わりです。
Sub teee()
sss = "-1-21+"
MsgBox (decimalize(sss))
End Sub
Function decimalize(s As Variant) As Long
Dim checkers As Variant
Dim ab As Long
Dim leftnum As Long
Dim rightnum As Long
Dim poneg As Integer
checkers = s
ab = 0
leftnum = 0
rigntnum = 0
poneg = 0
'Positive payup or negative payup
If Left(checkers, 1) = "-" Then
poneg = 1
lencheckers = Len(checkers)
checkers = Mid(checkers, 2, lencheckers - 1)
Else: poneg = 0
End If
startp = InStr(checkers, "-")
If startp = 2 Then leftnum = Left(checkers, 1)
ElseIf startp = 3 Then leftnum = Left(checkers, 2)
ElseIf startp = 4 Then leftnum = Left(checkers, 3)
End If
rightnum = Mid(checkers, startp + 1, 2)
If InStr(checkers, "+") > 0 Then
ab = 0.5
ElseIf InStr(checkers, "1/4") > 0 Then
ab = 0.25
ElseIf InStr(checkers, "1/8") > 0 Then
ab = 0.125
End If
rightnum = rightnum + ab
If poneg = 0 Then
decimalize = rightnum + leftnum * 32
ElseIf poneg = 1 Then
decimalize = (rightnum + leftnum * 32) * -1
End If
End Function
事前に多くのおかげで、このような
非常に感謝して、Vityata、あなたのソリューションは完璧に働いています! –
今日は+1カルマを知っておくといいです:)もしあなたが欲しいなら、あなたは次のように左の緑色のチェックをクリックして回答を選択することができます:http://meta.stackexchange.com/questions/5234/how-does-accepting-アンサーワーク – Vityata