Excel VBA获取从单元格到数组的路径

问题描述 投票:0回答:1

我有疑问。我创建宏:excels获取信息并合并为一个。我正在尝试添加更多功能。

如何从工作簿中的单元格获取路径:

A1 path C:/drive

A2 path D/iop

等数组?

我的代码:

Sub dzialaj()

    a = Array("path,path,path,path")
    Dim s
    Selection.ClearContents
    Dim orzeszek As Workbook
    Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
    'Application.ScreenUpdating = False
    Set mergeObj = CreateObject("Scripting.FileSystemObject")


    For Each s In a
    Set dirObj = mergeObj.Getfolder(s)
    Set filesObj = dirObj.Files
    For Each everyObj In filesObj
    Set orzeszek = Workbooks.Open(everyObj)


    Range("A3:IV" & Range("A65536").End(xlUp).Row).Copy

    ThisWorkbook.Worksheets(1).Activate
    Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial

    Application.CutCopyMode = False
    'Application.ScreenUpdating = True

    orzeszek.Close


    Next
    Next

End Sub
excel vba excel-vba
1个回答
0
投票

您可以从工作表读取范围到二维数组。

如果您只有一个列并且想要一个1d数组,则可以使用Index来获取感兴趣的列。下面将arr声明为未分配的动态数组。然后抓住inputRange并使用.Value属性生成一个二维数组。 Index用于切出第一列生成一维数组。从工作表中读入,数组是基于1而不是0。

Option Explicit
Public Sub Test()
    Dim inputRange As Range, arr()
    Set inputRange = ThisWorkbook.Worksheets("Sheet1").Range("A1:A2")

    If inputRange.Cells.Count = 1 Then
        ReDim arr(1, 1): arr(1, 1) = inputRange.Value
    Else
        arr = Application.WorksheetFunction.Index(inputRange.Value, 0, 1)
    End If
End Sub

如果不使用Index,您将拥有2D数组。

更多信息here

© www.soinside.com 2019 - 2024. All rights reserved.