|
yjwdjfqb 发表于 2014-10-9 19:58
老师能帮我看看问题出现在哪儿了吗,谢谢了! - Sub 提取药品()
- Dim rng1 As Range, rng2 As Range, nr As Long, nc As Long
- Dim i, j, k, n
- Dim arr, brr, crr, drr
- On Error Resume Next
- Set rng1 = Application.InputBox("请选择需要提取的药品列", "选择", , , , , , 8)
- If rng1 Is Nothing Then Exit Sub
- On Error Resume Next
- Set rng2 = Application.InputBox("请选择全部药品列", "选择", , , , , , 8)
- If rng2 Is Nothing Then Exit Sub
- With Sheets(rng2.Parent.Name)
- nr = .Cells(Rows.Count, 1).End(xlUp).Row
- nc = .Cells(1, Columns.Count).End(xlToLeft).Column
- arr = .Range(.Cells(1, 1), .Cells(nr, nc))
- brr = rng1.Value
- crr = rng2.Value
- ReDim drr(1 To UBound(arr), 1 To UBound(arr, 2))
- n = 1
- For i = 2 To UBound(arr)
- For j = 1 To UBound(crr)
- If brr(j, 1) = "" Then Exit For
- If brr(j, 1) = crr(i, 1) Then
- n = n + 1
- For k = 1 To UBound(arr, 2)
- drr(n, k) = arr(i, k)
- Next
- Exit For
- End If
- Next
- Next
- For k = 1 To UBound(arr, 2)
- drr(1, k) = arr(1, k)
- Next
- End With
- With Sheets("模拟")
- .Cells.Clear
- .Range("a1").Resize(n, UBound(drr, 2)) = drr
- .Range("A1").CurrentRegion.Border.LineStyle = 1
- .Range("A1").CurrentRegion.EntireColumn.AutoFit
- End With
- End Sub
复制代码 |
评分
-
查看全部评分
|