|
楼主 |
发表于 2013-2-23 20:16
|
显示全部楼层
爱疯 发表于 2013-2-18 20:58
一般,
ubound(arr,1)是一行行循环,ubound(arr,2)是一列列
看这个代码For i = 2 To UBound(arr),怎么是一列列的循环?
Sub Macro1()
Dim arr, brr(), i%, lr&, sh As Worksheet, c As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
arr = Array(0, 0, 5, 7, 8, 0, 9, 17)
Set sh = ActiveSheet
lr = sh.UsedRange.Row + sh.UsedRange.Rows.Count - 1
ReDim brr(1 To lr, 1 To 1)
With Workbooks.Open(ThisWorkbook.Path & "\B.xls")
With .Sheets(1)
For i = 2 To UBound(arr)
If arr(i) Then
m = 0
For Each c In Intersect(sh.Cells(5, arr(i)).Resize(lr), sh.Columns(arr(i)).SpecialCells(12))
m = m + 1
brr(m, 1) = c.Value
Next
.Cells(4, i).Resize(m) = brr
End If
Next
End With
.Close True
End With
Application.ScreenUpdating = True
MsgBox "ok"
End Sub |
|