作者ptguitar (佩蒂吉他)
看板Office
標題Re: [算表] 開啟檔案指定位置輸入vba
時間Thu Feb 9 14:52:49 2017
※ 引述《ptguitar (佩蒂吉他)》之銘言:
: 軟體:excel
: 版本:2007
: 最近因為工作上有遇到
: 有一個excel檔案
: 標題是A,B,C,D,E.....有順序
: 每天都要匯入檔案
: 可是人家給的檔案標題都是不固定
: 可能是A,C,B,E..
: 現在要依照順序給他貼進去對應欄位
: 已經有一個大概檔案
: 不過不知道怎麼迴圈設定自動寫入
: 檔案如下:
: https://drive.google.com/open?id=0BwCgrQhGgaw7SmdoTVpuUnl1Y2M
我先試寫把匯入的檔案貼到比對的工作表
然後比對的標題跟資料的標題核對後貼到資料對應的欄位
用下面的vba
Sub try()
Dim E As Range
Dim x, y As String
x = Sheets("比對").Range("A2").End(xlDown).Row
y = Sheets("資料").Range("A2").End(xlDown).Row + 1
For Each E In Sheets("比對").Range("A1:Z1")
I = Application.Match(E, Sheets("資料").Range("A1:Z1"), 0) - 1
Worksheets("比對").Activate
Range("A2:A" & x).Offset(0, I).Select
Selection.Copy
Worksheets("資料").Activate
Range("A" & y).Offset(0, I).Select
ActiveSheet.Paste
Next
End Sub
不過都會貼錯跟出現錯誤訊息
不知道那邊想法有錯
vba新手 感謝指導^^
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.34.252.11
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1486623171.A.519.html
→ soyoso: 測試出現"型態不符合"的錯誤訊息,為變動E為空白儲存格 02/09 15:03
→ soyoso: match時產生的錯誤訊息 02/09 15:03
→ soyoso: 可加上iserror判斷排除 02/09 15:05
→ soyoso: 貼錯的原因為Range("A2:A" & x).Offset(0, I).Select這一 02/09 15:16
→ soyoso: 段,請再多設個變數,並以累加方式變數=變數+1的方式 02/09 15:18
→ soyoso: 放置位置於Range("A2:A" & x).Offset(0, I).Select到next 02/09 15:19
→ soyoso: 中間 02/09 15:19
→ soyoso: 最後將Range("A2:A" & x).Offset(0, I).Select的變數I改為 02/09 15:20
→ soyoso: 累加的變數名稱 02/09 15:20