1. 程式人生 > >VBA實現點選按鈕自選檔案複製資料至當前工作薄

VBA實現點選按鈕自選檔案複製資料至當前工作薄

      為了方便日常在Excel中工作,編寫了以下程式碼,實現在Excel工作表中點選按鈕,開啟指定資料夾下的任一檔案,並將此檔案的sheet1表格的資料複製到當前VBA程式碼所處的ThisWorkbook的sheet1的表格中的功能。

Excel一般未開啟開發工具,可自行百度如何開啟。點選開發者工具>插入>第一個控制元件>建立>輸入以下程式碼:

Sub 按鈕1_Click()   
  Dim f As FileDialog  '宣告控制元件
  Dim filename$
  Set f = Application.FileDialog(msoFileDialogOpen)  '表示檔案對話方塊的例項。
  With f  '開啟檔案的路徑
    .InitialFileName = "E:\111"  '預設初始路徑InitialFileName
    .Show
    Workbooks.Open(.SelectedItems(1)) '選擇並開啟預設初始路徑下的資料夾中的檔案
    ActiveWorkbook.Sheets(1).Cells.Copy ThisWorkbook.Sheets(1).Cells '實現複製
    ActiveWorkbook.Close  '關閉檔案
  End With
End Sub

注意事項:
1、預設初始路徑InitialFileName:預設開啟的資料夾的路徑,E:\111只是一個例子,可自行調整,此處未加入異常處理,異常處理使用情況:開啟的資料夾不存在,但是此場景下,一般是開啟已經存在的資料夾,故此處未設定異常處理,如有需要,可在此處修改程式碼。
2、ActiveWorkbook與ThisWorkbook的區別:
(1)thisworkbook指當前VBA程式碼所處的Workbook,
(2)Activeworkbook指當前活躍的Workbook
相同點:如果VBA程式碼只對本身工作簿進行操作,則一直是相同的
不同點:若VBA程式碼新建或打開了其它工作簿,則往往新建的或剛開啟的是Activeworkbook,可以通過 “工作簿名。active”方法啟用指定物件