看板 Office 關於我們 聯絡資訊
軟體:Excel 版本:2010 之前在書上有學到如何匯入外部檔案的範例 現在實際匯入的需求跟書上的範例用起來有點不同 不知道VBA檔案可以怎麼改,求救版上高手相助 1.匯入的檔案皆只有一個工作表,匯入後希望工作表名稱等於檔名。 如:匯入檔名為"2009交易紀錄",工作表名稱即顯示"2009交易紀錄" (現在的檔案匯入會是原"2009交易紀錄"的工作表名稱"2009年7月") 2.重覆匯入相同檔名的檔案,匯入後可以直接取代原工作表,不要顯示工作表(2) 如:重覆匯入檔名為"2009交易紀錄",直接將原工作表"2009交易紀錄"取代為新檔案的資料 (現在的檔案匯入會新增一個工作表"2009年7月(2)"的工作表) 不知道若要符合這兩個需求檔案該如何更改? 檔案如下連結: http://0rz.tw/YnvHn http://0rz.tw/Av2os 感謝各位!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.150.130 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1572527878.A.B90.html
soyoso: 1.要以檔名的話,a)hyperlinks.follow前以selection的 10/31 22:08
soyoso: range來取得hyperlinks.address 10/31 22:08
soyoso: b)hyperlinks.follow後activeworkbook. 10/31 22:08
soyoso: name 10/31 22:08
soyoso: 以上字串有含副檔名,以instr或insterrev來找副檔名的位 10/31 22:08
soyoso: 置 10/31 22:08
soyoso: 2.set 變數=sheets(上述字串),於on error resume next下 10/31 22:08
soyoso: ,判斷為nothing的話表無該工作表名稱就執行原sheets.add 10/31 22:08
soyoso: 且將strmainfilename的activesheet.name改為1所取得字串 10/31 22:08
soyoso: 非nothing時,取代方面cells.clear,sheets的工作表名稱以 10/31 22:08
soyoso: allsheetnames(1),cells.copy到變數的儲存格a1內 10/31 22:08
nash30113: 感謝S大回覆!! 我研究看看... 10/31 22:49
nash30113: 發現功力不太夠..能否示範一下完整程式碼該怎麼寫? 10/31 23:39
soyoso: https://i.imgur.com/93CEtUK.jpg 類似這樣,變數名稱或型 11/01 07:49
soyoso: 態再自訂或宣告 11/01 07:49
nash30113: 感謝S大詳細指導! 我回去會再試試! 11/01 12:31
照S大的程式碼,目前看起來快完成了 但卡在最後取代進原工作表的部分不知道怎麼改 我寫的如下,但這樣似乎沒有辦法把新資料貼進去 再請協助指導一下怎麼改這一段 https://imgur.com/yRnNgOM ※ 編輯: nash30113 (114.24.150.130 臺灣), 11/01/2019 23:46:02
soyoso: c.cells.clear 11/02 06:30
soyoso: ...cells.copy c.range("a1") 11/02 06:30
nash30113: S大早安~ 測試成功!! 非常感謝你的協助~^_^ 11/02 09:45