|
楼主 |
发表于 2014-7-31 13:14
|
显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 无姓人 于 2014-7-31 13:26 编辑
dragonthree 发表于 2014-7-31 10:20
非常感谢您一次又一次的修改,谢谢!我昨晚把您7楼的代码稍微改了一下,能得到我想要的结果! 我在您 MkDir (Mypath & "\结果\" & d1(str) & "\" & d2(str)) 这句前加了一个判断。然后将 s = Dir改为了 s = Dir(Mypath & "\出租土地\" & "*.xls"),就这两个地方修改了。再次感谢您!
- Sub dragonthree 老师第2次写的()
- Dim i&, Myr&, Arr
- Dim d, d1, d2, k, str, Mypath
- Set d = CreateObject("Scripting.Dictionary")
- Set d1 = CreateObject("Scripting.Dictionary")
- Set d2 = CreateObject("Scripting.Dictionary")
- Myr = Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
- Arr = Sheets("Sheet1").Range("a2:c" & Myr)
- Mypath = ThisWorkbook.Path
- For i = 1 To UBound(Arr)
- d(Arr(i, 2)) = "" '单位
- d1(Arr(i, 1)) = Arr(i, 2) '流水号对应单位
- d2(Arr(i, 1)) = Arr(i, 3) '流水号对应人员
- Next
- k = d.keys
- MkDir (Mypath & "\结果") '新建文件夹
- For i = 0 To d.Count - 1
- MkDir (Mypath & "\结果" & "" & k(i)) '新建二级文件夹
- Next
- s = Dir(Mypath & "\出租土地" & "*.xls")
- Do While s <> ""
- str = Left(s, 15) '流水号
- f2 = Dir(Mypath & "\结果" & d1(str) & "" & d2(str), vbDirectory) '判断单位下面分人员文件夹是否已经存在
- If f2 = "" Then
- MkDir (Mypath & "\结果" & d1(str) & "" & d2(str)) '新建文件夹到人员
- End If
- Set fs = CreateObject("Scripting.FileSystemObject")
- fs.movefile Mypath & "\出租土地" & s, Mypath & "\结果" & d1(str) & "" & d2(str) & ""
- 's = Dir
- s = Dir(Mypath & "\出租土地" & "*.xls")
- Loop
- Set d = Nothing
- Set d1 = Nothing
- Set d2 = Nothing
- MsgBox "完成"
- End Sub
复制代码 |
|