一、猜测数组S存放的是工作表名称,Worksheets("s(i,1)")中,数组元素加了双引号,成了文本了,应去掉数组元素的双引号:
Range("D5:D765") = Application.Workbooks("Extract_Innatance.xlsm").Worksheets(s(i,1)).Range("B13")
二、把别的工作簿Extract_Innatance.xlsm中的B13:B773引用到本工作簿的D5:D765
Sub test1()
Dim wb As Workbook
Set wb = GetObject(里面放别的工作簿Extract_Innatance.xlsm的路径)
range("d5:d765")=wb.Sheets(别的工作簿Extract_Innatance.xlsm中的B13:B773所在的工作表名).range("B13:B773")
wb.Close
End Sub
S()这个动态数组第一维的上限就是n,你的S(I,1)从3循环到n+2怎么可能行的通呢?,要引用其他工作簿的数据光修改这行代码也无济于事
Extract_Innatance,Index等这几个名称你查看一下是否存在?或者名称是否完全一致?
我之前也是,写程序是对的,却在文件名或sheet名上弄错,正面也查不出来