VBA EXCEL:循环选择每个单元格时 find 方法不起作用

VBA EXCEL:循环选择每个单元格时 find 方法不起作用

我正在尝试创建一个宏,在选择范围后,它将告诉我样本中发现了多少个 20 英尺或 40 英尺的集装箱。

范围选择

该宏基本上查找字符串“1x20”或“1x40”,当找到其中一个时,变量 cont20 或 cont40 将增加 1。

我拥有的代码:

Sub containercount()

Dim count20 As Integer
Dim count40 As Integer

count20 = 0
count40 = 0 

For Each cell In Selection

If Not ActiveCell.Find("1x20", LookAt:=xlPart, MatchCase:=False) Is Nothing Then
 count20 = count20 + 1
End If

If Not ActiveCell.Find("1x40", LookAt:=xlPart, MatchCase:=False) Is Nothing Then
 count40 = count40 + 1
End If

Next cell

MsgBox ("Number of 20ft containers: " & count20 & vbNewLine & "Number of 40ft containers: " & count40)

End Sub

但结果总是零...我将非常感谢您的帮助。

答案1

它不起作用的原因是因为您正在空数组中搜索。

选择应该被类似的东西取代ActiveSheet.Selection

此外,您必须使用cell.Find,而不是ActiveCellActiveCell引用所选的唯一单元格。

但无论如何,我只会使用CountIf公式而不是宏。

相关内容