返回列表 上一主題 發帖

[發問] 開啟並編輯檔案

[發問] 開啟並編輯檔案

各位高手
小弟想做個VBA巨集a.xlsm
功能是開啟D槽的b.xlsx(每次的檔名不一樣) 來做重複性的事情
但是我卡在,我打開了b.xlsx,然後我不曉得該怎麼讓程式知道,我要編輯的是b.xlsx,
比如 我要讓b.xlsx的 cells(1,1) = abc
這些程式該怎麼放在哪?
謝謝各位高手
  1. Option Explicit
  2. Dim Open_File As Object
  3. Sub 開啟並編輯檔案()
  4.     Set Open_File = Application.FileDialog(msoFileDialogOpen)
  5.     With Open_File
  6.          .InitialFileName = "D:\*.xlsx"
  7.          .Show
  8.     End With
  9. End Sub
複製代碼

本帖最後由 n7822123 於 2020-7-29 01:56 編輯

回復 1# ssooi


把選檔做成副函數,執行"開啟並編輯檔案" 即可

全部上註解了,自行研究,程式如下


Sub 開啟並編輯檔案()
With Workbooks.Open(GetFileFullName).Sheets(1)
  .Activate
  .Cells(1, 1) = "abc"
  '.Parent.Close True       '關閉檔案+存檔
End With
End Sub

Function GetFileFullName() As String
With Application.FileDialog(msoFileDialogFilePicker)
  .Filters.Clear                                              '先清除可選檔案清單
  .Filters.Add "Excel檔案", "*.xls*"             '限定選取檔案的清單
  .InitialFileName = "D:\"                           '選取視窗最初的資料夾位置
  .AllowMultiSelect = False                       '單選
  If .Show = 0 Then Exit Function             '沒選擇就離開
  GetFileFullName = .SelectedItems(1)   '回傳選擇的第一個檔案的 '完整路徑'
End With
End Function
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

本帖最後由 n7822123 於 2020-7-29 02:14 編輯

回復 1# ssooi


選檔第2種寫法,看你喜歡哪一個

我是喜歡第1個,功能(參數)比較多,還可以改選資料夾

由其喜歡寫成副函數,可以給多個程序呼叫使用


Sub 開啟並編輯檔案()
Dim MyFile As String
MyFile = Application.GetOpenFilename("Excel檔案,*.xls*", MultiSelect:=False)
If MyFile = "False" Then Exit Sub
With Workbooks.Open(MyFile).Sheets(1)
  .Activate
  .Cells(1, 1) = "abc"
  '.Parent.Close True       '關閉檔案+存檔
End With
End Sub
程式是依需求寫的,需求表達不清楚
或者沒有上傳附件,愛莫能助

TOP

回復 3# n7822123


    成功了
   謝謝!

TOP

        靜思自在 : 站在半路,比走到目標更辛苦。
返回列表 上一主題