|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
Private Sub Worksheet_Change(ByVal T As Range)
If T.Row = 1 And T.Column = 2 Then
If T.Count > 1 Then End
If T.Value = "" Then End
Dim ar As Variant
Dim br()
With Sheets("进货单")
r = .Cells(Rows.Count, 1).End(xlUp).Row
If r < 2 Then MsgBox "进货单为空!": End
ar = .Range(.Cells(1, 1), .Cells(r, 12))
End With
ReDim br(1 To UBound(ar), 1 To UBound(ar, 2))
For i = 2 To UBound(ar)
If Trim(ar(i, 2)) = T.Value Then
n = n + 1
For j = 1 To UBound(ar, 2)
br(n, j) = ar(i, j)
Next j
End If
Next i
UsedRange.Offset(3).Borders.LineStyle = 0
UsedRange.Offset(3) = Empty
[a2] = T.Value & "明细表"
[a4].Resize(n, UBound(ar, 2)) = br
[a4].Resize(n, UBound(ar, 2)).Borders.LineStyle = 1
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Row = 1 And T.Column = 2 Then
Dim d As Object
Set d = CreateObject("scripting.dictionary")
With Sheets("进货单")
r = .Cells(Rows.Count, 1).End(xlUp).Row
If r < 2 Then MsgBox "进货单为空!": End
ar = .Range(.Cells(1, 1), .Cells(r, 12))
End With
For i = 2 To UBound(ar)
If Trim(ar(i, 2)) <> "" Then
d(Trim(ar(i, 2))) = ""
End If
Next i
With T.Validation
.Delete
.Add 3, 1, 1, Join(d.keys, ",")
End With
End If
End Sub
|
|