
帮我解决以下VBA代码,代码中如果是本地路径就可以运行,如果是网络路径就出错,下标越界错误,谢谢
Sub选择文件()DimiAsLong,FileNamePath_strAsString,File_strAsStringDimOpen_FileAsWorkbook,S...
Sub 选择文件()Dim i As Long, FileNamePath_str As String, File_str As StringDim Open_File As Workbook, Sht As Worksheet
Erase arrk = 0
Call RecursiveDir("此为路径地址")k = k + 1ReDim Preserve arr(1 To k)arr(k) = "此为下一级路径地址" If k = 0 Then MsgBox "所选文件夹没有Excle文件" Application.DisplayAlerts = False Application.ScreenUpdating = False For i = 1 To k '遍历所有选中的文件 FileNamePath_str = arr(i) '获取工作全名 File_str = Split(FileNamePath_str, "\")(UBound(Split(FileNamePath_str, "\"))) '文件名 Set Open_File = Workbooks.Open(FileName:=FileNamePath_str) For Each Sht In Workbooks(File_str).Sheets If ISCM(Sht.Name) Then ThisWorkbook.Sheets(Sht.Name).Delete End If Sht.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) Next Workbooks(File_str).Close False Next iApplication.DisplayAlerts = TrueApplication.ScreenUpdating = True
End Sub 展开
Erase arrk = 0
Call RecursiveDir("此为路径地址")k = k + 1ReDim Preserve arr(1 To k)arr(k) = "此为下一级路径地址" If k = 0 Then MsgBox "所选文件夹没有Excle文件" Application.DisplayAlerts = False Application.ScreenUpdating = False For i = 1 To k '遍历所有选中的文件 FileNamePath_str = arr(i) '获取工作全名 File_str = Split(FileNamePath_str, "\")(UBound(Split(FileNamePath_str, "\"))) '文件名 Set Open_File = Workbooks.Open(FileName:=FileNamePath_str) For Each Sht In Workbooks(File_str).Sheets If ISCM(Sht.Name) Then ThisWorkbook.Sheets(Sht.Name).Delete End If Sht.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) Next Workbooks(File_str).Close False Next iApplication.DisplayAlerts = TrueApplication.ScreenUpdating = True
End Sub 展开
1个回答
展开全部
Excel VBA是不支持网络(http://)路径的,而网络共享路径(\\share\)是支持的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询