首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自己的函数VBA否则不会执行

自己的函数VBA否则不会执行
EN

Stack Overflow用户
提问于 2021-07-27 11:11:35
回答 2查看 35关注 0票数 0

嗨,我完全不知道为什么其他与“退出为”将不会执行。

我各自的Excel测试单元格的值如下:

"VERS.GR.III,KENNNR.1905,V ERS.NR. 1023461“

代码语言:javascript
复制
Function DebitorVorhanden(Debitor As String) As Boolean
    Dim Ausgabe As Boolean
    Ausgabe = False
    Dim TextLänge As Integer
    TextLänge = Len(Debitor)
    Dim Prüfer As Integer
    
    For Prüfer = 1 To TextLänge
        If Mid(Debitor, Prüfer, 1) = "1" Then

            Dim PrüferLänge As Integer
            PrüferLänge = 0
            
            Dim Prüfer2 As Integer
            
            For Prüfer2 = Prüfer To Prüfer + 6
                
                If Int(Mid(Debitor, Prüfer2, 1)) = 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Then
                        PrüferLänge = PrüferLänge + 1
                    Else
                        Exit For
                End If
                
            Next Prüfer2
            
            If PrüferLänge = 7 Then
                Ausgabe = True
                GoTo DebitorGefunden
            End If
            
        End If
    Next Prüfer
    
DebitorGefunden:
    DebitorVorhanden = Ausgabe
End Function
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-27 11:35:13

代码语言:javascript
复制
If Int(Mid(Debitor, Prüfer2, 1)) = 1 Or 2 Or 3 Or 4 Or 5 Or 6 Or 7 Or 8 Or 9 Then

始终为true,因此if大小写正在运行。Or 2语句返回值2,而不将两者与int(.)进行比较。价值。

一个可行的解决办法是:

代码语言:javascript
复制
dim tmp
tmp=Int(Mid(Debitor, Prüfer2, 1))
If tmp=1 or tmp=2 or tmp=3 Then 

一个较短的方法是:

代码语言:javascript
复制
If InStr("123456789", Mid(Debitor, Prüfer2, 1) ) Then
票数 1
EN

Stack Overflow用户

发布于 2021-07-27 11:51:42

Or运算符“对两个表达式执行逻辑分离。

因此,操作符两边的表达式是完全分开处理的。

这意味着要想让它发挥作用,就必须是这样的:

代码语言:javascript
复制
If Int(Mid(Debitor, Prüfer2, 1)) = 1 Or Int(Mid(Debitor, Prüfer2, 1)) = 2 Or Int(Mid(Debitor, Prüfer2, 1)) = 3....

有几种解决这个问题的方法;处理数字的一种常见方法是使用选择Case语句,因为您可以像Case 1 To 9这样做

但我喜欢塞缪尔的InStr方法

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68543810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档