Dzwebs.Net

撰写电脑技术杂文十余年

vba Application.Transpose

Admin | 2015-3-29 11:56:23 | 被阅次数 | 38487

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  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


该杂文来自: Excel杂文

上一篇:vba判断内容是否为数字

下一篇:Excel安全模式的打开关闭及用途

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计