如果交集包含字符串,则添加 multi-select ListBox
Add multi-select ListBox if intersection contains string
我之前已经实现了代码,可以根据 selection.
在我的工作表上插入一个 multi-select ListBox
我想添加更多条件以添加 ListBox
仅当 Column 7
被 selected 且同一行中的 Column 2
具有字符串 "variable"
.
伪代码:
If ActiveCell.Column = 7 and if ActiveCell intersection with Column 2 contains the string "variable" then
Add multi-select ListBox below active cell and
Output selections to ActiveCell.
这是我目前正在使用的部分代码。它可以将 ListBox
添加到指定列中的每一行,而不是添加到指定列中的合格行。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, ColourArea(ActiveSheet)) Is Nothing Then
CreateColourPopUp Target
Else
DeleteAllPopUps Target
End If
End Sub
如何添加上面提到的额外条件?
Application.Intersect 方法 Returns 表示两个或多个范围的矩形交集的 Range 对象。
我不会用这个函数来处理你想做的事情。
相反,我会使用 Worksheet_SelectionChange
事件的 Target
参数和我所有的 If...Then
逻辑。
大概是这样:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'Makes sure no more than 1 cell is selected.
If Not Intersect(Target, ColourArea(ActiveSheet)) Is Nothing Then 'Not sure if this is required or not but remove this If...Then block if it's not needed.
If Target.Column = 7 And Target.Offset(0, -5).Value = "Variable" Then
CreateColourPopUp Target
End If
Else
DeleteAllPopUps Target
End Sub
这会添加额外的 If...Then
块以在创建列表框之前检查以下条件 True
;
Target.Column = 7
检查所选单元格在第 7 列中。
Target.Offset(0, -5).Value = "Variable"
检查所选单元格左侧第 5 列的单元格的值是 "Variable"
.
有关 Offset
属性 的语法,请参阅 documentation here。
我之前已经实现了代码,可以根据 selection.
在我的工作表上插入一个 multi-selectListBox
我想添加更多条件以添加 ListBox
仅当 Column 7
被 selected 且同一行中的 Column 2
具有字符串 "variable"
.
伪代码:
If ActiveCell.Column = 7 and if ActiveCell intersection with Column 2 contains the string "variable" then
Add multi-select ListBox below active cell and
Output selections to ActiveCell.
这是我目前正在使用的部分代码。它可以将 ListBox
添加到指定列中的每一行,而不是添加到指定列中的合格行。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, ColourArea(ActiveSheet)) Is Nothing Then
CreateColourPopUp Target
Else
DeleteAllPopUps Target
End If
End Sub
如何添加上面提到的额外条件?
Application.Intersect 方法 Returns 表示两个或多个范围的矩形交集的 Range 对象。
我不会用这个函数来处理你想做的事情。
相反,我会使用 Worksheet_SelectionChange
事件的 Target
参数和我所有的 If...Then
逻辑。
大概是这样:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub 'Makes sure no more than 1 cell is selected.
If Not Intersect(Target, ColourArea(ActiveSheet)) Is Nothing Then 'Not sure if this is required or not but remove this If...Then block if it's not needed.
If Target.Column = 7 And Target.Offset(0, -5).Value = "Variable" Then
CreateColourPopUp Target
End If
Else
DeleteAllPopUps Target
End Sub
这会添加额外的 If...Then
块以在创建列表框之前检查以下条件 True
;
Target.Column = 7
检查所选单元格在第 7 列中。Target.Offset(0, -5).Value = "Variable"
检查所选单元格左侧第 5 列的单元格的值是"Variable"
.
有关 Offset
属性 的语法,请参阅 documentation here。