|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
我在本论坛里下载了一个现有的exel,功能是将目标文件放入指定文件夹下。界面如下:
先选择文件扩展名,点击“列出所有文件”按钮之后,与该excel同目录下的所有xls文件均会被列举出来。这个功能是没有问题的,
在B列设置好要转移的文件名,C列设置好存放的文件夹名字,点击第二个按钮后,B 列的文件会被拷贝到C列设置的文件夹下。
现在出现的问题是,若B列设置2个及2个以上的文件,tool正常运行,若B列只设置1个文件,则会出现“类型不匹配”的报错信息。
(我在下面标红的两行试着做过修改,将第一红行的最后Row+1,,第二红行变成1 to UBound(arr,2),运行后,
B列只设置一个文件可以转移,但是设置两个以上文件的时候,没有报错,但是却只转移第一行设置的文件)请大神帮帮忙,谢谢!
部分代码如下:
Sub getfileList()
Dim myrows As Integer
Dim arr
myrows = Worksheets(1).Range("b" & Rows.Count).End(xlUp).Row
arr = Range("B2:B" & myrows)
///先判断文件夹是否存在
Set fso = CreateObject("scripting.filesystemobject")
If Not fso.fileexists(ThisWorkbook.Path & "\" & Range("C2")) Then '//判断文件夹是否存在 不存的新建一个文件夹
fso.CreateFolder (ThisWorkbook.Path & "\" & Range("C2"))
End If
Dim myfile As String
For i = 1 To UBound(arr, 1)
myfile = isGetfd(ThisWorkbook.Path, CStr(arr(i, 1)))
If myfile <> "" Then
fso.copyfile myfile, ThisWorkbook.Path & "\" & Range("C2") & "\" & CStr(arr(i, 1))
Else
MsgBox arr(i, 1) & " :不存在"
End If
Next
End Sub
|
|