六合开奖结果现场直播欢迎诸位!收藏本站注 册登 陆
常用三肖中特马:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 三肖中特马 > 文章页

vba Application.Transpose

Admin | 2015-3-29 11:56:23 | ReadNums | 11735 | 标签 六合开奖结果现场直播 | 打印本页
     

  transpose函数的功能是将数组转置,如果你的数组是一维(默认的一维数组是一行),转置后成为一列,转置的也不一定非得是一维数组,多维也可以。

  下面为大家介绍VBA中如何使用Transpose。

  简单应用:

  Dim arr(1 To 10)
  For i = 1 To 10
   arr(i) = Cells(i, 1)
  Next
  Range("b1").Resize(UBound(arr)) = Application.Transpose(arr)

  稍微复杂的应用:

  Option Explicit
    Dim arr, brr, d, i, nr, nc
    Set d = CreateObject("Scripting.Dictionary")
    With Sheet2
        nr = .Range("A65536").End(xlUp).Row
        nc = 3
        arr = .[A1].Resize(nr, nc)
    End With
    For i = 1 To UBound(arr)
        If Not d.Exists(arr(i, 3)) Then
            d.Add arr(i, 3), arr(i, 1)
        Else
            If InStr(d(arr(i, 3)), arr(i, 1)) = 0 Then
                d(arr(i, 3)) = d(arr(i, 3)) & "," & arr(i, 1)
            End If
        End If
    Next i
    Sheet3.Range("A:E").ClearContents
    arr = Application.WorksheetFunction.Transpose(d.keys)
    brr = d.items
    ReDim Preserve arr(1 To UBound(arr), 1 To 2)
    For i = 1 To UBound(arr)
        arr(i, 2) = brr(i - 1)
    Next
    Sheet3.Range("A1").Resize(UBound(arr), UBound(arr, 2)) = arr
    Set d = Nothing
    Set arr = Nothing
    Set brr = Nothing


问题未解决:在线咨询我要在线咨询问题

小鱼儿论坛香港正版

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日