|
devilavatar 发表于 2011-12-11 13:11
非常感谢你的指教,我要的就是这种,不过不是很明白代码的意思,如果能解释一下就好了,或者说一下怎样增 ...
Private Sub Worksheet_Change(ByVal Target As Range) '在单元格修改时触发时间
'On Error Resume Next
With Target.Cells(1) '如果修改了多个单元格,只对其中第一个判断
If .Column <> 2 Then Exit Sub '如果修改的不是第2列,退出
If Len(.Value) = 0 Then Exit Sub '如果填写的是空值,退出
v = .Value
With Sheets("数据源")
r = .Range("a:a").Find(v).Row '在数据源的a列查找填写的产品编号并返回其所在行号
t = .Cells(r, 3).End(xlDown).Row - r + 1 '返回行数
arr = .Cells(r, 1).Resize(t, 4).Value '获取该区域的值
End With
Application.EnableEvents = False
.Resize(t, 4) = arr '将值填写到相应区域
Application.EnableEvents = True
End With
End Sub
有效性的list是通过定义名称得到的,你可以ctrl+f3看到它.
数据源中在G列追加内容可以扩充list值
数据源中在A:D列添加数据(以空行分隔)可以扩展数据源.
|
评分
-
查看全部评分
|