以下是一个可能的VBA脚本解决方案:
Sub FilterByAsterisks()
Dim rng As Range
Dim cell As Range
Dim asterisksCount As Integer
'设定你的范围
Set rng = ThisWorkbook.Sheets("Sheet1").Range("A1:A100")
'获得选中单元格中的 * 数量
asterisksCount = Len(Selection.Value) - Len(Replace(Selection.Value, "*", ""))
'对每个单元格进行循环
For Each cell In rng
'检查 * 的数量是否小于或等于选定值
If (Len(cell.Value) - Len(Replace(cell.Value, "*", ""))) <= asterisksCount Then
'保留该行
cell.EntireRow.Hidden = False
Else
'隐藏该行
cell.EntireRow.Hidden = True
End If
Next cell
End Sub
这段代码首先获取用户所选择的单元格中的 * 数量,然后遍历指定的范围,在其中检查每个单元格的值。如果单元格中的 * 数量小于或等于用户选择的数量,那么整行就会被保留下来;否则,整行将被隐藏。
请注意:这个脚本假设 * 只存在于列A,并且所有的数据都位于第一到第100行。如有需要,可以根据实际情况调整这个范围