需求:从命名规则的批量data文件中提取固定单元格的值,并拷贝到另一个excel中,进行统计
步骤:
1、打开report文件,弹出对话框,开始
2、依次打开命名规则的的data文件n
3、获取固定单元格数据并赋值给report文件的sheet1的A列(data序号)和B列(data)
4、关闭data文件
5、返回循环
6、结束
代码文件:点击下载
日期:2020-12-01 09:31:37
Sub getvaluefromfile() \' \' get RTC frequency from excel files \' \' Dim path As String Dim file As String Dim Formula As String Dim sheetname As String Dim cellname As String Dim cellnum As String Dim icount% Dim WB_origin As Workbook Dim sheet_origin As Excel.Worksheet Dim originname As String Dim WB_target As Workbook Dim sheet_target As Excel.Worksheet Application.ScreenUpdating = False Application.DisplayAlerts = False icount = 0 originname = "2020" \'the name character of data files is 2020 path = Application.ActiveWorkbook.path & "\" \'get data files path file = Dir(path & "*.xls") \'get the first excel file name If InStr(file, originname) <> 0 Then \'if it is data file, then open it Set WB_origin = Workbooks.Open(path & file) Else MsgBox "Start to open report file automatically,OK?" Set WB_target = Workbooks.Open(path & file) End If Do Until file = "" If InStr(file, originname) <> 0 Then \' icount = icount + 1 Set WB_origin = CreateObject(path & file) \'Set sheet_origin = WB_origin.Worksheets(1) sheetname = Mid(file, 1, 19) cellname = "B" & icount cellnum = "A" & icount WB_target.Sheets(1).Range(cellnum).value = icount \'fill in the number WB_target.Sheets(1).Range(cellname).value = WB_origin.Sheets(sheetname).Range("E51").value \'fill in the RTC frequency Workbooks(file).Close SaveChanges:=False Else If icount > 1 Then MsgBox "Not data file,jump?" End If file = Dir Loop MsgBox "Finished ! In total " & icount & " files" Application.ScreenUpdating = True End Sub