我有问题。我创建宏: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
答案 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。