作者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://webptt.com/cn.aspx?n=bbs/Office/M.1481777918.A.285.html
※ 编辑: danceink (210.60.122.153), 12/15/2016 13:21:02
1F:→ soyoso: 复制贴上值,可以range.pastespecial 12/15 13:18
2F:→ soyoso: 或以range = range.value的方式 12/15 13:19
3F:→ soyoso: 原文写到的bug处应是要指"工作表"名称不是原始录制巨集的 12/15 13:27
4F:→ soyoso: "工作表"名称吧 12/15 13:27
5F:→ danceink: 有办法将此修改自动fix我每一个新开启的EXCEL资料吗? 12/15 13:34
6F:→ soyoso: 那工作表名称有特定吗? 12/15 13:36
7F:→ soyoso: 例如工作表名称有出现什麽字串、同档名之类的 12/15 13:37
8F:→ soyoso: 或是工作表内的储存格是否有出现特定字串之类的 12/15 14:02
9F:→ danceink: 原始输出的档案是txt档;使用excel开启;因此工作表名 12/15 14:04
10F:→ danceink: 称为档名;目前想到的方法是将工作表名称手动更改为工作 12/15 14:04
11F:→ danceink: 表1再试试。 12/15 14:04
12F:→ danceink: txt档名依序为001t0,002t0,001t1, 12/15 14:09
13F:→ soyoso: 如果是开启txt档来看,应只会有一个工作表,那可将bug处删 12/15 14:10
14F:→ soyoso: 除 12/15 14:11
15F:→ soyoso: 取档名方面可用activeworkbook.name试试 12/15 14:19