亞寵展、全球寵物產業風向標——亞洲寵物展覽會深度解析
679
2025-04-04
如何實現數據有效性列表項同步更新?
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
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
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。