iT邦幫忙

0

VBA 複製其他檔案儲存格

  • 分享至 

  • xImage

如題
小弟想請問各位高手關於複製其他excel檔內的儲存格
大致上是這樣

  • 找到該檔案
  • 複製需求內容(僅sheet1內)
  • 貼上到現在使用中的excel(同sheet1)

但我主要的問題是

  1. 該檔案是由其他軟體自動匯出,並且檔案名稱會以當天日期+中文命名(例:20161209檔案)所以變成我沒辦法以"固定的檔案名稱"作為複製的來源,思考是否可以從"修改日期"去判斷為"當日日期",從而找到來源並複製,或是以其他的方式判斷這位置有無當天日期為名稱的檔案。

  2. 複製的儲存格範圍不一定,可能是A1:J30又有可能是A1:N50,但唯一確定的是連續資料,所以我有查了"判斷有內容的儲存格",但得到的答案

[A1].CurrentRegion.Select
Range("A1").CurrentRegion.Copy Sheets("工作表2").Range("A1")

這卻是在同一份檔案內的複製貼上而已...(sheet1 to sheet2)
所以又回到了第一個問題/images/emoticon/emoticon02.gif/images/emoticon/emoticon20.gif

看更多先前的討論...收起先前的討論...
Andy Chiu iT邦研究生 3 級 ‧ 2016-12-10 01:39:32 檢舉
請問匯出的資料是.xls還是.csv?如果是.csv的話,應該有其他的作法,您目前的需求,就是把自動轉出的資料再整理起來沒錯吧?
a大:
匯出的檔案為xls,再整理起來沒有錯。
Andy Chiu iT邦研究生 3 級 ‧ 2016-12-10 23:24:37 檢舉
那是轉一整批資料出來,有不同天的資料?還是每次就一筆資料,只是產生日期與檔名沒有固定?
那是轉一整批資料出來,有不同天的資料?還是每次就一筆資料

每天一次一筆資料

只是產生日期與檔名沒有固定?

是的
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

2
海綿寶寶
iT邦大神 1 級 ‧ 2016-12-09 18:40:57
最佳解答
Sub Main()
    '開檔
    Workbooks.Open Filename:=Format(Date, "yyyymmdd") & "檔案.xls"
    '複製資料
    Range("A1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    '點回本身工作表
    Windows("Book1").Activate
    Range("A1").Select
    '貼上
    ActiveSheet.Paste
    '收工
End Sub
看更多先前的回應...收起先前的回應...

大神請收下我雙膝,我找

Workbooks.Open Filename:=Format(Date, "yyyymmdd") & "檔案.xls"

這串找好久了

可否再請問,要貼上的位置若非不一定是A1,可否判斷A1若有資料改往A2貼呢(向下判斷)

另追問大神有沒有適合的書籍可供參考

Andy Chiu iT邦研究生 3 級 ‧ 2016-12-10 05:44:04 檢舉

網路上其實有很多資源可以參考,這是小弟的前年寫的鐵人賽系列文章:
Excel VBA 的眉眉角角

a大的連結手機版(chrome)點下去會回it邦首頁…我再用電腦版的點點看,另a大的這篇我有印象有看到,但還需要研究研究,這是我第一次使用vba所以比較多的地方需要前輩指導,a大先謝了

Andy Chiu iT邦研究生 3 級 ‧ 2016-12-11 00:58:36 檢舉

如果您有學過寫程式,應該會覺得VBA是很簡單的,如果沒有,那就會跟我一樣重頭開始學習了, VBA的學習曲線很很平順,有遇到問題歡迎詢問

z22344566 iT邦新手 4 級 ‧ 2017-03-29 18:23:19 檢舉

請問海綿寶寶
我套用這段程式碼無法執行
http://ithelp.ithome.com.tw/upload/images/20170329/20103088avHqUVWXVz.jpg

請問是什麼原因 謝謝

我碰到這訊息的原因都是
「執行VBA的檔案」和「被開啟的檔案」
不在同一個目錄

比較正規的解法
是在第一列開檔那裡
寫成完整的路徑(例:C:\User\20170329檔案.xlsx)

z22344566 iT邦新手 4 級 ‧ 2017-03-29 21:48:26 檢舉

可是第一行 不是抓取當天日期的資料嗎
下完整路徑 不就沒辦法抓取當天資料了嗎?

如果「完整路徑」能解決錯誤訊息
再將「完整路徑中檔名的部份」改成原寫法
如果錯誤訊息都解決不了
還在乎什麼當天資料呢?

0
Andy Chiu
iT邦研究生 3 級 ‧ 2016-12-13 04:57:51

今天花了些時間寫了一下,我還是習慣匯入後會保存於單一資料夾,所以弄了個匯入程序,先點選要匯入的日期,然後用匯入按鈕匯入,匯入後會把sheet1改名為日期名稱,然後List有按鈕可以直接切過去該指定日期的工作表查閱

下載

我要發表回答

立即登入回答