我有以下代码将工作表导入到工作簿中。
Sub Importsheet()
Sheets.Add Type:= _
"E:\MyFolder\Manipulated Data\Test\" & Range("E2").Text & ".csv"
ActiveSheet.Move After:=Worksheets(Worksheets.Count)
EndSub
基本上,文件夹路径和文件扩展名是恒定的,但实际文件名是从单元格E2中提取的。
我现在有一个要导入的文件名列表。列表始终在同一单元格(A6)中开始,但是最后一行根据列表长度而变化。 我不确定如何更改上面的代码,以便vba遍历列出的所有名称。
最重要的是,如果文件不存在,我不希望出现任何错误,而是在相应行的B列中填充“无法定位文件”文本(例如,如果文件在A6不存在,单元格B6的值现在应该为“无法找到文件”)
感谢所有帮助!
答案 0 :(得分:1)
问题:
Activate
Activesheets
Next Cell
代替Next mycell
或Next
这应该有效:
Sub ImportAllSheets()
Dim myCell As Range
Dim LastRowColumnA As Long
With ActiveWorkbook.Worksheets(2)
LastRowColumnA = .Range("A" & Rows.Count).End(xlUp).row
For Each myCell In .Range("A6:A" & LastRowColumnA)
If Len(Dir("E:\MyFolder\Manipulated Data\Test\" & myCell.Value & ".csv")) > 0 Then
Sheets.Add Type:="E:\MyFolder\Manipulated Data\Test\" & myCell.Value & ".csv", After:=Worksheets(Worksheets.Count)
Else: myCell.Offset(0, 1) = "File Not Found"
End If
Next
End With
End Sub