VBA基礎入門(24)FSO CopyFile

2021-12-25 VBA基礎入門

上期我們分享了《VBA基礎入門(23)初識FSO;文件,文件夾的遍歷 》

了解了如何遍歷文件夾獲取每個文件的名字,屬性等等。


本期我們分享其他關於FSO的應用:

顧名思義,文件的複製,文件夾的複製。

例如:

有 A, B 兩個文件夾,A文件夾裡面有8000文件,但在其中有300你想要的文件,並且你要把這些文件複製到B文件夾中去。

當然,如果你需要複製的文件很少,十個八個的,直接搜索,複製粘貼就好了,但是,你需要複製的文件很多的話,你再一個個搜索,想必累死也弄不完吧,這就需要我們用工具來完成,用bat來完成也是不錯的選擇,如果只是進行這麼一次,單次的需求。以後我們會詳細的說明,會用vba 結合dos命令來完成一些需求。

首先,我們先想想大概的過程,根據給定的list中的文件名,做個循環,將文件從A複製到B,界面呢,需要一個list的地方就夠了。

例如下圖,左側A列可以存放這些文件名的list,根據需要可以增加清除list的方法,可以用我們之前分享的FileDialog功能增加文件夾的選擇,來填充copy路徑,可以增加信息框來顯示執行的進度,狀態等等,可用statusbar代替。

最主要的就是A列的list。

【代碼】

我們先看下主要的Main過程:

要點1:

之前沒詳細說明的獲取非空值最大行的方法

maxrow = Range("A1000").End(xlUp).Row

註:當然如果你的行數有可能大於1000你就不能像上面這麼寫了,寫個最大的值就好了。

要點2:

事前check

Call pathcheck

對於必要的參數要進行一些check,不然不選擇路徑的情況下就會報錯

要點3:

CopyFile

fso.CopyFile inpath & "\" & file, outpath & "\"

前面是指定到文件名的路徑,後面是出力的路徑

如果是文件夾的複製就把CopyFile換成CopyFolder,後面的出力路徑要追加"& file "  同入力路徑一樣的。

註:上面的file是帶文件後綴的,例如,aaa.txt,bbb.xls,ccc.ppt。。。

這個代碼還有問題,對於list中的文件名,在文件夾A中一定存在,上面的代碼不會出錯,那麼如果list中的文件,在A中根本不存在,那麼在CopyFile的時候就會報錯,代碼要嚴謹。

那麼如何判斷list中的文件在A文件夾中是否存在呢?

下期分享《FileExists》

PS:還在為工作效率上不來而煩惱嘛,快來加入我們吧。

長按識別下面二維碼,關注。

相關焦點

  • VBA操作OutLook批量發送工資條
    nbsp;= "郵件正文內容" '//正文具體內容        .cc = "vbatoday
  • FSO對象操作txt文件
     Dim fso As New Scripting.FileSystemObject 後期綁定:不需要引用類庫文件,但沒有智能提示。Set fso = CreateObject("Scripting.FileSystemObject")2
  • Excel vba如何創建文本文件
    上代碼Sub test()Dim FileName$, fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")FileName
  • 【代碼合集】VBA操作文件夾代碼合集
    Set fso"目標路徑"fso.DeleteFolder "文件夾路徑"親測通過的示例代碼:Sub 移動文件夾2()    Set fso = CreateObject(
  • VBA基礎入門(6)簡單的字符串處理函數(1)
    搜索微信號:kevin_vba或長按識別下面二維碼,關注。
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 作品分享:《Excel VBA基礎入門(修訂版)》下載
    這本電子書是《Excel VBA解讀》系列的基礎入門篇,在2018年2月發布的基礎上增補了一些內容,並稍作修訂。 這本電子書主要針對初學者編寫。雖然這些知識很基礎,但也花了我不少的時間和精力。
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    最後,定義一個方法,讓vba調用。如下圖:這個方法的上方套上一個 xlwings 的裝飾器 @xw.func。表示這個方法需要註冊到 Vba 模塊中。如下圖:點一下上圖紅框部分,即可註冊你的 py 文件中的自定義方法到 vba 中。他大致原理是讀取 py 文件中的方法,然後相應在 vba 中生成名字和參數一樣的 vba 方法。
  • 如果你是學習Excel的朋友,對VBA這個應該概念不陌生吧?
    VBA最大的缺點明明就是不能在windows以外的平臺使用,像Mac上的Excel,雖然有vba,但是基本只能發揮30%不到的功能,字典這種需要調用windows系統裡面功能的東西就沒法用了,包括正則表達式,調資料庫、fso文件之類的東東。
  • Excel VBA流程圖解 基礎入門之IF語句 多層IF嵌套 一目了然
    1、IF基礎入門語句If……Else……End if 語句根據表達式的值有條件地執行一組語句。
  • vba第二十四課
    vba第二十四課工作表拆分工作表拆分是指把工作薄內的單個或多個工作表獨立成一個工作薄,此功能還是比較實用的。例:Sub 工作表拆分()Dim wk As Workbook, a!Application.DisplayAlerts = FalseFor a = 1 To Sheets.Count mypath = ThisWorkbook.Path b = mypath & "\" & Sheets(a).Name Set wk = Workbooks.Add Workbooks("24
  • 南京泰語基礎入門培訓
    南京新視線教育在南京開設泰語基礎入門培訓,找南京泰語基礎入門培訓,泰語基礎入門培訓哪家好?泰語基礎入門培訓費用?南京新視線教育為您提供泰語基礎入門培訓收費、泰語基礎入門培訓老師、泰語基礎入門培訓等信息查詢,能夠幫助您準確快速的查找到滿意的南京泰語基礎入門培訓。
  • VBA: 遍歷文件抓取指定條件的數據
    Application.Calculation = xlCalculationManual    Application.DisplayAlerts = False        Exit Sub    End SubSub searchdata(folder As String)    '遍歷子文件夾內的各個文件    Dim fso
  • Python基礎入門教程:移動文件
    收錄於話題 #Python基礎入門教程 Python基礎入門教程之移動文件,移動文件很容易理解,就是把文件從一個位置移動到另一個位置,上一篇教程中我們講解了Python基礎入門教程複製文件,同樣移動Python文件也會用到一個函數。
  • VBA代碼大全030:用vba強制關閉word應用程式
    這時候一般的套路都是在excel vba中創建word應用程式實例,然後一番操作以後關閉word應用程式。 關於在vba中使用dos命令可以看往期文章用VBA執行DOS命令
  • Word與Excel用VBA交互(二)-批量生成檔案
    2行開始循環,第1行是標題第8行的代碼,打開當前文件夾下面的一個檔案.docx的Word文檔咱們先來看第20行的代碼,word.range(11,11),小夥伴數一下從第一個字符到編號有10個字符當你把滑鼠定位在編號後面這,10+1,就是要插入字符的位置可以用下面的代碼獲取光標所在的字符起始位置和字符結束位置代碼要在Word vba
  • Excel VBA流程圖 基礎入門之IF語句 一眼就能看懂的多層IF嵌套規則
    1、IF基礎入門語句If...Else...End if 語句根據表達式的值有條件地執行一組語句。
  • VBA代碼大全010:用vba遍歷文件夾及其子文件夾內的文件
    vba老手都知道,vba寫多了,其實都是在做循環。循環處理多個單元格的內容,循環處理多個工作表的內容,循環處理多個工作簿的內容。
  • AutoCAD基礎入門到實戰精通課程高清完整資源
    AutoCAD基礎入門到實戰精通課程高清完整,好課低價分享(有需要的找我)如果需要AutoCAD基礎入門到實戰精通課程資料,可以複製標題或截圖此頁面給客服