Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: dadasdas

[已解决]能不能修改下代码?

[复制链接]
发表于 2013-2-18 20:58 | 显示全部楼层
一般,

ubound(arr,1)是一行行循环,ubound(arr,2)是一列列
你写做ubound,不知你指哪种?

从上往下
回复

使用道具 举报

 楼主| 发表于 2013-2-18 21:09 | 显示全部楼层
爱疯 发表于 2013-2-18 20:58
一般,

ubound(arr,1)是一行行循环,ubound(arr,2)是一列列

For i = 2 To UBound(A)是不是省略数字1
能不能这样写: For i = 2 To UBound(A,1)

点评

是省略了,两句等效  发表于 2013-2-18 21:15
回复

使用道具 举报

 楼主| 发表于 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
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-6 12:05 , Processed in 0.225928 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表