gpt4 book ai didi

excel - VBA 不匹配 IF 语句

转载 作者:行者123 更新时间:2023-12-03 03:09:03 25 4
gpt4 key购买 nike

我试图同时比较 2 个字符串值 - 帐户编号和帐户名称。我已将所有变量显式设置为字符串,但是在 IF 比较中仍然出现不匹配错误。

有人知道我做错了什么吗?


Dim i As Integer
For i = 2 To 10

Dim accountNumber As String
accountNumber = CStr(Sheet1.Cells(i, 2).Value)
Dim accountName As String
accountName = CStr(Sheet1.Cells(i, 3).Value)
Dim c As Integer
c = 4

Dim j As Integer
For j = 2 To 14831
Dim accountNumber2 As String
accountNumber2 = CStr(Sheet2.Cells(j, 2).Value)
Dim accountName2 As String
accountName2 = CStr(Sheet2.Cells(j, 3).Value)

If (accountNumber = accountNumber2 & accountName = accountName2) Then
Dim platform As String
platform = Sheet2.Cells(j, 11).Value
Sheet1.Cells(i, c).Value = platform
c = c + 1
End If
Next j

Next i
End Sub

最佳答案

正如 @cybernetic.nomad 在您的问题下方的评论中所写,您应该使用 and 运算符,它是逻辑与,而不是 & 对于字符串意味着连接。

当你写的时候

accountNumber = accountNumber2 & accountName = accountName2

那么 & 的优先级高于 =,因此实际上这就是它的含义:

accountNumber = (accountNumber2 & accountName) = accountName2

所以发生的事情是:

  1. 您首先连接 accountNumber2accountName 生成一个字符串。
  2. 然后,您将 accountNumber 与串联结果进行比较,得到一个 bool 值。
  3. 最后,您尝试将该 bool 值与 accountName2 进行比较,后者是一个字符串,这可能不是您想要的。

关于excel - VBA 不匹配 IF 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59096896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com