作者danceink (舞墨)
看板Office
標題[算表] EXCEL 直式資料轉橫式資料自動化問題
時間Thu Dec 15 12:58:35 2016
軟體:EXCEL
版本:OFFICE365
EXCEL自學苦手
目的將EXCEL不同欄位資料自動化輸出
將於工作表中
欄位 B41-B52,B56-B71,C56-C71,B76-B89
轉成
新工作表內的長列資料
C2-BI2
目前進行步驟先將資料
輸出在原工作表D41-BI41
欄位
D41-O41 =OFFSET($B$41,ROW()-41+COLUMN()-4,0,)
P41-AE41 =OFFSET($B$56,ROW()-41+COLUMN()-16,0,)
AF41-AU41 =OFFSET($C$56,ROW()-41+COLUMN()-32,0)
AV41-BI41 =OFFSET($B$76,ROW()-41+COLUMN()-48,0,)
問題
錄製完巨集後 無法複製D41-BI41的值輸出到另一工作表
bug似乎出在
.
.
.
--> Sheets("028T0 ekg_hrv 1part").Select
新開的檔案名稱不是原始錄製巨集的檔案名稱
要怎麼改成適用我新開的其他EXCEL檔案
因為有300多筆的資料都要這樣處理
Range("D41:BI41").Select
Range("BI41").Activate
Selection.Copy
Sheets("工作表2").Select
Range("C2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False
End Sub
還是有人給我可以其他方面的建議呢
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.60.122.153
※ 文章網址: https://www.ptt.cc/bbs/Office/M.1481777918.A.285.html
※ 編輯: danceink (210.60.122.153), 12/15/2016 13:21:02
→ soyoso: 複製貼上值,可以range.pastespecial 12/15 13:18
→ soyoso: 或以range = range.value的方式 12/15 13:19
→ soyoso: 原文寫到的bug處應是要指"工作表"名稱不是原始錄製巨集的 12/15 13:27
→ soyoso: "工作表"名稱吧 12/15 13:27
→ danceink: 有辦法將此修改自動fix我每一個新開啟的EXCEL資料嗎? 12/15 13:34
→ soyoso: 那工作表名稱有特定嗎? 12/15 13:36
→ soyoso: 例如工作表名稱有出現什麼字串、同檔名之類的 12/15 13:37
→ soyoso: 或是工作表內的儲存格是否有出現特定字串之類的 12/15 14:02
→ danceink: 原始輸出的檔案是txt檔;使用excel開啟;因此工作表名 12/15 14:04
→ danceink: 稱為檔名;目前想到的方法是將工作表名稱手動更改為工作 12/15 14:04
→ danceink: 表1再試試。 12/15 14:04
→ danceink: txt檔名依序為001t0,002t0,001t1, 12/15 14:09
→ soyoso: 如果是開啟txt檔來看,應只會有一個工作表,那可將bug處刪 12/15 14:10
→ soyoso: 除 12/15 14:11
→ soyoso: 取檔名方面可用activeworkbook.name試試 12/15 14:19