看板 Office 關於我們 聯絡資訊
※ 引述《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