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

时间:2018-09-04 09:38:08

标签: excel vba excel-vba

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以读取从图纸到二维数组的范围。

如果只有一列并且想要一维数组,则可以使用Index来获取感兴趣的列。下面将arr声明为未分配的动态数组。 然后抓取inputRange并使用.Value属性生成2d数组。 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

不使用索引,您将拥有2D数组。

更多信息here