图1
然而,当我修改了单元格区域A1:A3中的...
Q:如图1所示,在单元格C1中设置了数据有效性,列表数据来源于单元格区域A1:A3。这里,将单元格区域A1:A3命名为testData?
图1
然而,当我修改了单元格区域A1:A3中的数据后,单元格C1中的数据不会自动相应修改,如图2所示。
图2
如何实现数据源中的数据修改后,设置了数据有效性的单元格中的数据相应地自动修改?
A:下面使用工作表的Change事件来实现,代码如下:
Private SubWorksheet_Change(ByVal Target As Range)
Dim rng As Range
Dim rngFound As Range
‘当名称为testData的区域数据改变时
If Not Intersect(Target,Me.Range(“testData”)) Is Nothing Then
‘遍历工作表中的数据有效性单元格
For Each rng InMe.Cells.SpecialCells(xlCellTypeAllValidation).Cells
‘如果单元格中的数据有效性设置为区域testData
如何使用INDEX MATCH实现多条件查找?
Q:如图1所示,列A和列B中的数据都有重复,现在我们要使用INDEX MATCH函数组合来查找西区空调的数量。可以使用MATCH函数获得查找值所在的行,将其作为INDEX函数的参数来获取数据。然而,由于MATCH函数将只会返回第一个匹配的数据所在的位置,也就是说公式:=MATCH(“空调”,A:A,0),返回数值5,而
If rng.Validation.Formula1 =”=testData” Then
‘检查该单元格中的值是否在区域testData列表值中
Set rngFound =Me.Range(“testData”).Find(rng.Value, , xlValues, xlWhole)
‘如果值不在列表中,命名区域中的数据一定被修改了,因此单元格值进行相应的修改
If rngFound Is Nothing Then
Application.EnableEvents =False
rng.Value = Target.Value
Application.EnableEvents =True
End If
End If
Next rng
End If
End Sub
运行后的效果如下图3所示。
图3
在Excel中如何筛选出不规则的数据?
Q:如图1所示,在列B中有几千行这种不规则的数据,现在只想筛选出左边是数字右边是字母的数据,例如558fjk、07ad,如何能够实现? 图1 A:下面介绍如何使用数组公式来实现目的。为便于理解,我们先使用一些中间结果,然后组合成最终的数组公式。 我们的思路是,首先将数据分解成单个的字符,然后找出字符在数据中首