|
发表于 2019-4-22 13:30:00
|
显示全部楼层
可以这样:
- Dim str0 As String,str1 As String
- Dim strPath As String, strFile As String
- str1 = Application.GetOpenFilename(fileFilter:="CSV或Excel文件(*.csv;*.xls;*.xlsx),,CSV文件(*.csv),*.csv,Excel2003文件(*.xls),*.xls,Excel2007文件(*.xlsx),*.xlsx,所有文件(*.*),*.*", Title:="选择导入文件") 'MultiSelect:=True允许选择多个文件,返回数组
- If str1 = "False" Then Exit Sub
- str0=str1 '取原文件地址
- strPath = Left(str1, InStrRev(str1, "")) '截取路径
- strFile = Right(str1, Len(str1) - InStrRev(str1, "")) '截取文件名
- '--------------------------------------------------------------导入表格-------------------------
- Application.ScreenUpdating = False
- Set wb = GetObject(str1)
- wb.Application.ScreenUpdating = False
- With wb.ActiveSheet
- '处理文件代码段
- '......
- '处理文件代码段
- End With
- wb.Application.ScreenUpdating = True
- If Right(str1, 4) ".xls" Then
- wb.Application.DisplayAlerts = False
- str1 = strPath & Left(strFile, InStrRev(strFile, ".") - 1) & ".xls" '保存为.xls 格式
- wb.SaveAs Filename:=str1, FileFormat:=xlNormal '另存为excel 2003文件(.xls)xlExcel8值56 或 xlNormal,(.xlsx)xlOpenXMLWorkbook值51,(.xlsm)xlOpenXMLWorkbookMacroEnabled值52
- wb.Application.DisplayAlerts = True
- Kill str0 '删除原文件
- End If
- wb.Close savechanges:=True '关闭并保存工作薄
- Set wb = Nothing Application.ScreenUpdating = True
|
|