|
本帖最后由 fjmxwrs 于 2011-8-14 03:26 编辑
- Private Sub Worksheet_Change(ByVal Target As Range)
- Dim arr, arr1(), y&, x&, i&
- If Target.Address = "$B$1" Then
- With Sheets("数据")
- arr = .Range("A2:J" & .Range("A65536").End(xlUp).Row).Value
- End With
- For x = 1 To UBound(arr)
- If arr(x, 8) = Target.Value Then
- i = i + 1
- ReDim Preserve arr1(1 To 9, 1 To i)
- For y = 1 To 7
- arr1(y, i) = arr(x, y)
- Next y
- arr1(8, i) = arr(x, 9)
- arr1(9, i) = arr(x, 10)
- End If
- Next x
- Range("A3").Resize(65534, 9).ClearContents
- Range("A3").Resize(65534, 9).Borders.LineStyle = 0
- Range("A3").Resize(UBound(arr1, 2), UBound(arr1)) = Application.Transpose(arr1)
- Range("A3").Resize(UBound(arr1, 2), UBound(arr1)).Borders.LineStyle = 1
- End If
- End Sub
- Private Sub Worksheet_SelectionChange(ByVal Target As Range)
- Dim arr, d As Object
- Set d = CreateObject("scripting.dictionary")
- If Target.Address = "$B$1" Then
- With Sheets("数据")
- arr = .Range("H2:H" & .Range("H65536").End(xlUp).Row)
- End With
- For x = 1 To UBound(arr)
- d(arr(x, 1)) = ""
- Next x
- With Selection.Validation
- .Delete
- .Add Type:=xlValidateList, Formula1:=Join(d.keys, ",")
- End With
- End If
- End Sub
复制代码
pn.rar
(71.24 KB, 下载次数: 11)
|
|