excel - 比较多列列表框中的单元格和选定项时类型不匹配
问题描述
我正在学习 VBA,这个论坛已经帮助了我很多次,检查了以前的问题和答案,但是这次我无法弄清楚发生了什么,也找不到有效的现有解决方案。
因此,我在工作表中有两个列表框:LB_SelectTaskToDelete 和 LB_SelectLineToDelete。第一个 lisbox 的目的是允许用户选择一个任务,稍后我将在宏中使用它来查找它并在另一个工作表中将其删除。每个任务都可以链接到一个或多个“行”,因此第二个列表框允许用户为选定的任务选择他想要删除的特定行。此处的代码在 LB_SelectTaskToDelete Change 事件上,用于填充第二个列表框。
在我只使用一列的 LB_SelectTaskToDelete 之前,这就像一个魅力:
For Each cell In rng
If [cell.Value = LB_SelectTaskToDelete.Value] And [activetask = "Y"] Then LB_SelectLineToDelete.AddItem cell.Offset(0, 3).Value
Next cell
但我想为添加第二列的用户提供更多信息,现在我不知道如何使它工作。
目前看起来像这样,但我不断收到类型不匹配错误。
If LB_SelectTaskToDelete.ListIndex > -1 And LB_SelectTaskToDelete.Selected(LB_SelectTaskToDelete.ListIndex) Then
For Each cell In rng
activetask = CStr(cell.Offset(0, -2).Value)
selectedTask = CStr(LB_SelectTaskToDelete.List(LB_SelectTaskToDelete.ListIndex, 0))
celltext = CStr(cell.Text)
If [celltext = selectedtask] Then MsgBox ("Works") ' Should be an And with the two statements
If [activetask = "Y"] Then MsgBox ("works too") 'LB_SelectLineToDelete.AddItem cell.Offset(0, 3).Value
Next cell
End If
错误出现在
If [celltext = selectedtask] Then
变量中保存的文本是这样的:“PM001” 如果都是字符串,为什么类型不匹配?