|
本帖最后由 arter 于 2016-1-11 09:23 编辑
宏是这样的:
Sub 名称()
Dim arr, brr(), i
arr = Range("A5:A" & [A666].End(3).Row)
For i = 1 To UBound(arr)
Set wb = Workbooks.Open(Filename:=ActiveWorkbook.Path & "\" & arr(i, 1) & ".xlsm", ReadOnly:=True)
Set wb = GetObject(ActiveWorkbook.Path & "\" & arr(i, 1) & ".xlsm")
ReDim Preserve brr(1 To UBound(arr), 1 To 1)
brr(i, 1) = wb.Sheets("Deckblatt Blatt 1").Range("B5")
wb.Close False
Next
Range("B5").Resize(UBound(brr), 1) = brr
End Sub
---------------------------------------------------------------------------------------------
Sub 批量()
Dim arr, brr(), i
arr = Range("A5:A" & [A666].End(3).Row)
For i = 1 To UBound(arr)
Set wb = Workbooks.Open(Filename:=ActiveWorkbook.Path & "\" & arr(i, 1) & ".xlsm", ReadOnly:=True)
Set wb = GetObject(ActiveWorkbook.Path & "\" & arr(i, 1) & ".xlsm")
ReDim Preserve brr(1 To UBound(arr), 1 To 1)
brr(i, 1) = wb.Sheets("Deckblatt Blatt 1").Range("D10")
wb.Close False
Next
Range("C5").Resize(UBound(brr), 1) = brr
End Sub
一个工作薄里像上面的宏有十个甚至更多,附图淡蓝色部分每一列是一个宏;我是把它们连起来运行。
有两个问题:
1、一个工作薄里引用几十个数据(附图淡蓝色部分),得好几分钟,跟不要说更多的数据了,太慢了,请高人指点,有无高招?
2、A列A5往下的数据是引用数据的源头(即每个单元格就是被引用单元格的文件名),我是采用粘贴的办法,上午还行,下午就不行了,也不知道怎么回事;但如果我用格式刷将“上午粘贴的单元格内容”的属性刷到钢粘贴的单元格后,再计算就没问题。
我又用“常规”、“数值”、“文本”等来设置粘贴的单元格内容的属性,也不行。请高手指点。谢谢。
|
|