打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vba将excel单元格区域转化为数组

     有时候我们需要将单元格区域的整行或整列内容作为一个整体进行操作的时候,可以考虑将其转化为数组。但是直接将单元格区域赋值给数组得到的是一个二维数组,这个二维数组的第一维是单元格区域的从上到下,也就行方向,第二维度是单元格区域的从左到右,也就是列方向,所有维度均以1为起始下标。

如下图所示:

Sub Savetime()

    Dim arr()

    Dim oWK As Worksheet

    Set oWK = ActiveSheet

    Dim oRng As Range

    Set oRng = oWK.Range('a1:b10')

    arr = oRng.Value

End Sub

如果需要依次将单元格区域的每行或每列都转化为一维数组,可以调用excel工作表函数Transpose将一个只有一行或只有一列的二维单元格区域转化为一维数组。

这里分两种情况:

一、如果是要将单元格区域的每列转化为一维数组,只需调用一次excel工作表函数Transpose即可,如下所示:

Sub T1()

    Dim arr()

    Dim arrTemp()

    Dim oWK As Worksheet

    Set oWK = Sheet1

    Dim oRng As Range

    '单元格区域的第一列

    Set oRng = oWK.Range('a1:a5')

    For i = 1 To 3

        arr = oRng.Offset(0, i - 1).Value

        '1次转置即可转化为一维数组

        arrTemp = Excel.Application.WorksheetFunction.Transpose(arr)

    Next i

End Sub

二、如果是要将单元格区域的每行转化为一维数组,需连续调用两次excel工作表函数Transpose才能转化为一维数组,如下所示:

Sub T2()

    Dim arr()

    Dim arrTemp()

    Dim oWK As Worksheet

    Set oWK = Sheet1

    Dim oRng As Range

    '单元格区域的第一行

    Set oRng = oWK.Range('a1:c1')

    For i = 1 To 3

        arr = oRng.Offset(0, i - 1).Value

        '2次转置才能转化为一维数组

arrTemp=Excel.Application.WorksheetFunction.Transpose(Excel.Application.WorksheetFunction.Transpose(arr))

    Next i

End Sub

三、利用inputbox选择区域放入数组,如下所示:

这样貌似更灵活一些

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
兰版VBA数组入门10讲
Excel 常见字典用法集锦及代码详解3
VBA数组学习笔记
(18)数组,Split拆分,join合并,Filter搜索
Excel 数组精华
高效的VBA数组让你事半功倍
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服