我有疑问。我创建宏: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
您可以从工作表读取范围到二维数组。
如果您只有一个列并且想要一个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。