【发布时间】:2018-09-11 20:50:09
【问题描述】:
我正在开发一个使用多维数组来保存多列数据的宏。然后,宏将数组值放入新工作簿中。一切正常,除了一个 if 语句。这是 if 语句的子程序
Sub push(toWorkbook As Workbook, ByRef code() As Variant)
'activeBook = "TempEDI.xlsm"
'Workbooks(activeBook).Activate 'set new workbook as active book
Dim newSheet As Worksheet
Set newSheet = toWorkbook.Sheets(1)
h = 2
f = 0
g = 0
newSheet.Cells(1, 1).Value = "Customer"
newSheet.Cells(1, 2).Value = "Invoice #"
newSheet.Cells(1, 6).Value = "ASN"
For i = 0 To UBound(code)
newSheet.Cells(h, 1).Value = code(i, 0)
newSheet.Cells(h, 2).Value = code(i, 1)
If code(f, 2) = code(i, 1) Then
newSheet.Cells(h, 6).Value = code(f, 2)
f = f + 1
End If
If code(g, 3) = code(i, 1) Then '****** <--- THIS IS THE STATEMENT
newSheet.Cells(h, 3).Value = code(g, 3)
newSheet.Cells(h, 4).Value = code(g, 4)
newSheet.Cells(h, 5).Value = code(g, 5)
g = g + 1
End If
h = h + 1
Next i
MsgBox code(g, 3) & " " & code(g, 1)
End Sub
看,我的第一个 if 语句按其应有的方式工作,但第二个永远不会评估为真,即使我知道 code(0,3) = code(0,1) 的事实。我什至在子例程的末尾放了一个 MsgBox 来吐出两个值,它们是相同的。知道发生了什么吗?为什么这个陈述永远不会评估为真?任何帮助、想法或指针表示赞赏。提前致谢。
【问题讨论】:
-
这两个值是否完全相同?可以有一个额外的空间(
"text"vs"text ")或不同的大小写吗? ("Text"vs"text")? -
消除@cybernetic.nomad 的评论,也许可以试试
If Trim(code(g, 3)) = Trim(code(i, 1)) Then -
@cybernetic.nomad 你叫它,谢谢。
-
@dwirony 现在使用 trim 并且效果很好,感谢您告诉我有关 Trim() 的信息
标签: arrays excel vba multidimensional-array