|
楼主 |
发表于 2016-6-1 14:51
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
- '*********************************
- '******* 北极狐工作室出品 ******
- '******* QQ:14885553 ******
- '*********************************
- Sub Opiona()
- 'On Error Resume Next '// 发生错误,自动执行下一句,就是忽略错误
- Application.ScreenUpdating = False '//关闭屏幕刷新
- Application.DisplayAlerts = False '//关闭系统提示
- t = Timer '//开始时间
- Set SH0 = Sheets("合并表外")
- SH0.Range("A5:H65536").ClearContents
-
- FileArr = FileAllArr(ThisWorkbook.Path, "*.xls?", ThisWorkbook.Name, True, False)
- For I = 0 To UBound(FileArr)
- If InStr(FileArr(I), "数据有效性") = 0 Then '//排除不需要的工作簿
-
- Str_coon = "HDR=yes';Data Source =" & FileArr(I) '//OFFICE2003,2007 通用
- NameArr = GET_NameSheets(Str_coon)
-
- For N = 0 To UBound(NameArr) '//循环所有工作表
-
- StrSQL = "SELECT 序号,项目名称,规格型号,单位,合计,备注,详细"
- StrSQL = StrSQL & ",'" & GetPathFromFileName(FileArr(I)) & "_" & NameArr(N) & "' AS 来源"
- StrSQL = StrSQL & " FROM [" & NameArr(N) & "$A:G]"
- StrSQL = StrSQL & " WHERE LEN(项目名称)>0"
-
- IROW = SH0.Range("B65536").End(3).Row + 1
- SQLARR = GET_SQL_To_Arr(StrSQL, Str_coon, False)
- SH0.Range("A" & IROW).Resize(UBound(SQLARR, 1) + 1, UBound(SQLARR, 2) + 1) = SQLARR
-
- Next N
- End If
- Next I
- Application.ScreenUpdating = True '//恢复屏幕刷新
- Application.DisplayAlerts = True '//恢复系统提示
- MsgBox "一共用时:" & Format(Timer - t, "#0.0000") & " 秒", , "北极狐提示!!" '//提示所用时间
- End Sub
复制代码 |
|