我试图声明三个Application.Match行号的和。如果我将所有这些部分添加到手表中,我会看到每个匹配项的值(例如: 1、1、1),但是当我将它们加起来时,就会在手表值中得到"0“。下面是调试时的相关代码和监视结果。
Dim S13 As Integer
S13 = Application.Match(K(3), TF13, 0) + Application.Match(K(2), TC13, 0) + Application.Match(K(1), TB13, 0)
Dim SD13 As Integer
SD13 = S13 / 3手表:表达式:值:类型
表: Application.Match(K(1),TB13,0):1:变体/双
表: Application.Match(K(2),TC13,0):1:变体/双
表: Application.Match(K(2),TF13,0):1:变体/双
手表:S13:0:整型
手表: SD13 :0:整数
我在S13上尝试了"Long“和其他声明,但是我确实只需要它是"Integer”,因为这个数字应该超过类型字符的限制。
BTW,我尝试在下面声明一个简单的公式,并在手表中得到"0“作为一个值。
Dim X As Integer: X = 3 / 3
Dim Y As Integer: Y = 1 + 1 + 1
Dim Z As Integer: Z = "1" + "1" + "1"尽管如此,我不太确定Application.Match和这个问题有什么关系。尽管如此,我还是想在我的案子里提出来。
更新:新测试场景
我打开了一个新的工作簿和模块,输入下面的代码,得到了预期的结果:"2“用于TEST1,"1”用于TEST2。看起来我可能有一个不同的问题影响到我的其他工作簿。有人想要帮我开始调查吗?
Sub TEST()
Dim TEST1 As Integer: TEST1 = 1 + 1 ' Works
Dim TEST2 As Integer: TEST2 = 2 / 2 ' Works
MsgBox TEST1 & " : " & TEST2 ' Message is "2 : 1"
End Sub问题解决:
我弄明白了我的问题,这是无法看到的信息提供(对不起)。我的代码是:
ElseIf...
'Dim don't go here...
Dim S13 As Integer: S13 = Application.Match(K(3), TF13, 0) _
+ Application.Match(K(2), TC13, 0) _
+ Application.Match(K(1), TB13, 0)
Dim SD13 As Integer: SD13 = S13 / 3
ElseIf Not IsError(Application.Match(K(3), TF13, 0)) _
And Not IsError(Application.Match(K(2), TC13, 0)) _
And Not IsError(Application.Match(K(1), TB13, 0)) Then
If <<some formula to help me validate match above (e.g.: all true and all same number)>> Then
Worksheets("MATCHES").Range("$A" & ARR & ":" & "$F" & ARR) _
= TR13.Range("$A" & SD13 & ":" & "$F" & SD13)
End If
ElseIf...该代码将我的声明放在ElseIf/然后之前(进入前一个ElseIf),而不是将它放在需要声明变量的位置之后。下面是更正。
ElseIf...
ElseIf Not IsError(Application.Match(K(3), TF13, 0)) _
And Not IsError(Application.Match(K(2), TC13, 0)) _
And Not IsError(Application.Match(K(1), TB13, 0)) Then
'Dim go here...
Dim S13 As Integer: S13 = Application.Match(K(3), TF13, 0) _
+ Application.Match(K(2), TC13, 0) _
+ Application.Match(K(1), TB13, 0)
Dim SD13 As Integer: SD13 = S13 / 3
If <<some formula to help me validate match above (e.g.: all true and all same number)>> Then
Worksheets("MATCHES").Range("$A" & ARR & ":" & "$F" & ARR) _
= TR13.Range("$A" & SD13 & ":" & "$F" & SD13)
End If
ElseIf...发布于 2019-09-23 19:42:18
Dim S13 As Integer
S13 = CInt(Application.Match(K(3), TF13, 0)) + CInt(Application.Match(K(2), TC13, 0)) + CInt(Application.Match(K(1), TB13, 0))
Dim SD13 As Integer
SD13 = S13 \ 3发布于 2019-09-24 02:50:41
请试一试:
Dim S1 As Integer
Dim S2 As Integer
Dim S3 As Integer
S1 = Application.Match(K(3), Range("TF13"), 0)
S2 = Application.Match(K(2), Range("TC13"), 0)
S3 = Application.Match(K(1), Range("TB13"), 0)
Dim SD13 As Integer
SD13 = (S1 + S2 + S3) / 3
msgbox "S1: " & S1 & ", S2: " & S2 & ", S3: " & S3 & ", SD13: " & SD13现在S1,S2,S3和SD13的结果是什么?
发布于 2019-09-24 12:41:01
好的,所以我找出了我的问题,这是无法通过提供的信息看到的。抱歉的。
我的代码是这样的:
ElseIf...
'Dim don't go here...
Dim S13 As Integer: S13 = Application.Match(K(3), TF13, 0) _
+ Application.Match(K(2), TC13, 0) _
+ Application.Match(K(1), TB13, 0)
Dim SD13 As Integer: SD13 = S13 / 3
ElseIf Not IsError(Application.Match(K(3), TF13, 0)) _
And Not IsError(Application.Match(K(2), TC13, 0)) _
And Not IsError(Application.Match(K(1), TB13, 0)) Then
If <<some formula to help me validate match above (e.g.: all true and all same number)>> Then
Worksheets("MATCHES").Range("$A" & ARR & ":" & "$F" & ARR) _
= TR13.Range("$A" & SD13 & ":" & "$F" & SD13)
End If
ElseIf...这段代码将我的声明放在ElseIf/ElseIf之前(在前一个中),而不是将它放在明显需要声明变量的位置之后。下面是更正。
ElseIf...
ElseIf Not IsError(Application.Match(K(3), TF13, 0)) _
And Not IsError(Application.Match(K(2), TC13, 0)) _
And Not IsError(Application.Match(K(1), TB13, 0)) Then
'Dim go here...
Dim S13 As Integer: S13 = Application.Match(K(3), TF13, 0) _
+ Application.Match(K(2), TC13, 0) _
+ Application.Match(K(1), TB13, 0)
Dim SD13 As Integer: SD13 = S13 / 3
If <<some formula to help me validate match above (e.g.: all true and all same number)>> Then
Worksheets("MATCHES").Range("$A" & ARR & ":" & "$F" & ARR) _
= TR13.Range("$A" & SD13 & ":" & "$F" & SD13)
End If
ElseIf...https://stackoverflow.com/questions/58068925
复制相似问题