日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

vba移动文件_Excel VBA之FSO-2.3文件夹的移动

發(fā)布時(shí)間:2024/2/28 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vba移动文件_Excel VBA之FSO-2.3文件夹的移动 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Excel VBA之FSO-2.3文件夾的移動(dòng)

前景提要

我們之前接觸了如何通過(guò)FSO來(lái)實(shí)現(xiàn)文件夾的復(fù)制操作,此操作需要注意的一點(diǎn)就是如果當(dāng)前文件夾中有歷史版本的同名文件夾的話,他會(huì)直接覆蓋原來(lái)的數(shù)據(jù),如果需要保存歷史數(shù)據(jù)的話,在使用之前最好先做好備份,今天我們繼續(xù)了解FSO和文件夾的操作,復(fù)制完成之后,我們可能還需要將原來(lái)的數(shù)據(jù)刪除,這樣才不會(huì)占用空間,我能不能直接移動(dòng)文件夾,類似剪切這樣子呢,這樣我就不用再去刪除數(shù)據(jù),FSO可以做到這一點(diǎn)的。

思路

我們首先來(lái)確定下思路,移動(dòng)文件夾和文件夾的復(fù)制的思路是差不多的,文件夾的兩個(gè)路徑肯定是必須的,這里我們可以嘗試結(jié)合之前學(xué)過(guò)的FolderExists等方法,判斷下文件夾是否存在,因?yàn)橐苿?dòng)文件夾的話,如果出現(xiàn)同名文件夾會(huì)報(bào)錯(cuò)的,這里要記得判斷下。

上代碼

Sub test()Dim pathn$, fs As Object, FileName$, NewString$, s$, OldString$Set fs = CreateObject("Scripting.FileSystemObject") '創(chuàng)建FSOWith Application.FileDialog(msoFileDialogFolderPicker) '調(diào)用文件選擇框 .Title = "請(qǐng)選擇要復(fù)制的文件夾" '選擇框的名字,人性化 If .Show = -1 Then OldString = .SelectedItems(1) '文件夾的路徑 FileName = Split(OldString, "")(UBound(Split(OldString, ""))) '通過(guò)拆分和最大下標(biāo)的方式的活文件名 End IfEnd WithWith Application.FileDialog(msoFileDialogFolderPicker) .Title = "請(qǐng)選擇要粘貼的位置" If .Show = -1 Then s = .SelectedItems(1) '獲得要粘貼的文件夾路徑 NewString = s & "" & FileName '將上面的路徑和前面得到的文件名合并,構(gòu)造要粘貼的文件夾的完整路徑 End IfEnd WithIf fs.FolderExists(NewString) Then fs.DeleteFolder (NewString) fs.MoveFolder OldString, NewString MsgBox "復(fù)制成功!" Else fs.MoveFolder OldString, NewString MsgBox "復(fù)制成功!"End IfSet fs = Nothing '釋放FSOEnd Sub

效果如圖:

執(zhí)行操作前:

原文件夾

目標(biāo)文件夾

這里沒(méi)有文件夾

執(zhí)行操作之后:

目標(biāo)文件夾內(nèi)

而原文件夾內(nèi)

很明顯,代碼達(dá)到了我們的要求。

代碼解析

前面一部分的代碼和昨天分享的內(nèi)容都是一樣的,基本上沒(méi)有變動(dòng),只是更改了部分路徑而已,如果有不太清楚的地方,大家可以看看昨天的文章回顧下

然后就是本次的新知識(shí)點(diǎn)了,前面做了那么多的準(zhǔn)備工作,都是為了這一步,FSO文件夾的移動(dòng)

fs.MoveFolder OldString, NewString

原來(lái)的路徑在前,新路徑再后。

這里說(shuō)明一點(diǎn):移動(dòng)文件夾的操作雖然等同于剪切文件夾這樣的操作,但是它有很大的局限性,就是他只能在同盤(pán)符之前進(jìn)行操作移動(dòng),不能跨盤(pán)符,就是說(shuō)原始文件再D盤(pán),我只能在D盤(pán)范圍內(nèi)執(zhí)行移動(dòng),不能移動(dòng)到C盤(pán),E盤(pán)等其他盤(pán),這點(diǎn)在使用一定要注意,如果跨盤(pán)符移動(dòng)的話,會(huì)提示你權(quán)限不夠等,當(dāng)初小編也是卡在這里,找了好多資料才看這樣的解釋的。大家要牢記,跨盤(pán)符的話,還是使用復(fù)制的操作吧。而且移動(dòng)的操作,需要判斷同名文件夾是否存在,存在的話,還需要?jiǎng)h除才可以執(zhí)行移動(dòng)的操作,相對(duì)與復(fù)制文件夾來(lái)說(shuō),有很大的局限性和弊端,不過(guò)根據(jù)使用場(chǎng)合和場(chǎng)景的不同,大家可以根據(jù)自己的需求靈活使用。

完整代碼加注釋

Sub test()Dim pathn$, fs As Object, FileName$, NewString$, s$, OldString$Set fs = CreateObject("Scripting.FileSystemObject") '創(chuàng)建FSOWith Application.FileDialog(msoFileDialogFolderPicker) '調(diào)用文件選擇框 .Title = "請(qǐng)選擇要復(fù)制的文件夾" '選擇框的名字,人性化 If .Show = -1 Then OldString = .SelectedItems(1) '文件夾的路徑 FileName = Split(OldString, "")(UBound(Split(OldString, ""))) '通過(guò)拆分和最大下標(biāo)的方式的活文件名 End IfEnd WithWith Application.FileDialog(msoFileDialogFolderPicker) .Title = "請(qǐng)選擇要粘貼的位置" If .Show = -1 Then s = .SelectedItems(1) '獲得要粘貼的文件夾路徑 NewString = s & "" & FileName '將上面的路徑和前面得到的文件名合并,構(gòu)造要粘貼的文件夾的完整路徑 End IfEnd WithIf fs.FolderExists(NewString) Then '判斷同名文件夾是否存在 fs.DeleteFolder (NewString) '存在的話先刪除 fs.MoveFolder OldString, NewString '在執(zhí)行移動(dòng)的操作 MsgBox "復(fù)制成功!" Else fs.MoveFolder OldString, NewString '不存在可以直接移動(dòng) MsgBox "復(fù)制成功!"End IfSet fs = Nothing '釋放FSOEnd Sub

總結(jié)

==========================================================================

今天的知識(shí)點(diǎn)主要是通過(guò)FSO來(lái)移動(dòng)文件夾的,不過(guò)相對(duì)于之前我們學(xué)習(xí)的復(fù)制文件夾的方法來(lái)說(shuō),此方法存在很多的弊端和局限性,對(duì)于小編這樣很強(qiáng)調(diào)代碼的通用性的人來(lái)說(shuō),移動(dòng)文件夾是一個(gè)并不太實(shí)用的功能,大家在使用的時(shí)候,要牢記使用場(chǎng)景,同盤(pán)符,同盤(pán)符,同盤(pán)符,重要的事情說(shuō)三遍。現(xiàn)在的電腦配置都比較的好,應(yīng)該不存在內(nèi)存不足的情況,還是建議大家條件允許的情況下盡量使用復(fù)制的功能比較好

==========================================================================

本人已經(jīng)打算長(zhǎng)期分享一些網(wǎng)絡(luò)搜集的各種VBA知識(shí),如果大家有問(wèn)題也可以提出來(lái)共同解決,一起進(jìn)步,畢竟VBA的世界還是很大的。

因?yàn)榛旧隙际亲詫W(xué)的,很多代碼和知識(shí)都是來(lái)源于網(wǎng)絡(luò)的,如果在分享的過(guò)程中,正好拿了某位大神的代碼,請(qǐng)告訴我,我將標(biāo)注代碼來(lái)源出處,也方便大家學(xué)習(xí)分享,謝謝!

如果你有什么想要分享的,或者有什么想要知道的,都可以留言等方式告訴我,大家一起努力進(jìn)步。

好了,明晚19:00,準(zhǔn)時(shí)再見(jiàn)。

=============================歷史相關(guān)文章==============================Excel VBA之FSO-2.1文件夾的創(chuàng)建,刪除

Excel VBA之FSO-2.2文件夾的復(fù)制

Excel VBA和文件夾-1.13總結(jié)篇

總結(jié)

以上是生活随笔為你收集整理的vba移动文件_Excel VBA之FSO-2.3文件夹的移动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。