|
Sub 需求2()
Dim r%, i%
Dim arr, brr()
Dim d As Object
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set d = CreateObject("scripting.dictionary")
With Worksheets("数据表")
r = .Cells(.Rows.Count, 1).End(xlUp).Row
arr = .Range("a2:k" & r)
For i = 1 To UBound(arr)
If arr(i, 10) <> "" And Not d.exists(arr(i, 10)) Then
d(arr(i, 10)) = Array(arr(i, 4), arr(i, 7), arr(i, 1), arr(i, 8), arr(i, 6))
ElseIf arr(i, 10) = "" Then
k = k + 1
ReDim Preserve brr(1 To 5, 1 To k)
brr(1, k) = arr(i, 4)
brr(2, k) = arr(i, 7)
brr(3, k) = arr(i, 1)
brr(4, k) = arr(i, 8)
brr(5, k) = arr(i, 6)
End If
Next
End With
With Worksheets("客户档案")
r = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(r, 1).Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
r = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(r, 1).Resize(k, 5) = Application.Transpose(brr)
.Range("a1:ac" & r).Borders.LineStyle = xlContinuous
End With
End Sub
大侠帮忙看修改下这个数据
这段代码刚开始运行正常可以执行
但后面不晓得咋了突然执行不了啦,数据格式什么的都没变动
其次对代码做下修改,具体需求见附件需求描述表中对需求2的描述 |
Sub 需求2()
Dim r%, i%, arr, d As Object
Set d = CreateObject("scripting.dictionary")
With Worksheets("数据表")
r = .Cells(.Rows.Count, 1).End(xlUp).Row
arr = .Range("a2:k" & r)
For i = 1 To UBound(arr)
If arr(i, 10) = "" And arr(i, 11) <> "" Then
d(arr(i, 1)) = Array(arr(i, 4), arr(i, 7), arr(i, 1), arr(i, 8), arr(i, 6))
End If
Next
End With
If d.Count = 0 Then MsgBox "不存在符合条件的数据!": Exit Sub
With Worksheets("客户档案")
r = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(r, 1).Resize(d.Count, 5) = Application.Transpose(Application.Transpose(d.items))
.Range("a1:ac" & r).Borders.LineStyle = xlContinuous
End With
MsgBox "数据提取完毕!"
End Sub
|
|