作者ptguitar (佩蒂吉他)
看板Office
标题Re: [算表] 储存格里面可以加入其他储存格的资料吗?
时间Tue Oct 16 09:19:14 2018
※ 引述《poeta (键盘诗人)》之铭言:
: 软体:excel
: 版本:13
: 不好意思,标题表达的不好,我的报表是这样
: A的年薪 B的年薪 C的月薪
: 95年 100 105 9
: 96年 120 100 10
: 97年 105 89 9
: A跟B的原始资料都是年薪,偏偏C的是月薪。
: 假如我把C的标题改成 C的月薪(年薪)
: 底下的资料能否变成 9(108) 10(120) 9(108)
: 其中108、120、108,不是单纯手输,是要自动运算。
: 当然我有两个解决方法,一个是手输入。
: 另一个是乾脆不要月薪的资料,直接把C的那列改成年薪,这样问题也能解决。
: 我只是问问能否如此呈现。
练习一下巨集 我还是小嫩嫩
Sub test()
Dim Kx As Range, yy As Range
Dim col1 As Integer
Set Kx = Sheets("test").Range("A1:A" & Range("A1").End(xlDown).Row)
col1 = Range("A1").End(xlToRight).Column - 1
For i = 1 To col1
For Each yy In Kx.Offset(0, i)
If IsNumeric(yy) And InStr(Kx.Offset(0, i).Rows(1), "月薪") > 1 Then
yy.Value = yy & "(" & yy.Value * 12 & ")"
End If
Next
Next i
End Sub
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.250.67.78
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Office/M.1539652757.A.696.html
1F:推 newacc: 你的for each yy那边是有问题的 10/16 09:46
2F:→ newacc: 1.kx.offset()只会有一个格子,不需要用for each loop 10/16 09:47
3F:→ newacc: 2.现有kx.offset写法只会在A栏中执行 10/16 09:48
4F:→ newacc: 嗯,用手机有点难review,等等用电脑整理一下 10/16 09:49
5F:→ soyoso: 因变数kx有要取得a1起连续范围的资料 10/16 10:03
6F:→ soyoso: 所以kx.offset()应是不会只有一个格子,所以以for each回 10/16 10:04
7F:→ soyoso: 圈是可行的 10/16 10:04
8F:→ soyoso: 且kx.offset要配合回圈i值来做栏偏移,也不会只有在a栏执 10/16 10:06
9F:→ soyoso: 行 10/16 10:07
10F:→ soyoso: 该写法也不会执行於a栏,因为i起始值为1,执行上也是b栏起 10/16 10:08
11F:→ soyoso: 执行 10/16 10:09
12F:推 newacc: 对,对不起是我看错0rz 10/16 10:09
13F:→ soyoso: p大写法用於原文资料内测试应是可行的,只需於a1处填上标 10/16 10:12
14F:→ soyoso: 题资料,让变数kx来抓取a1:a4,如无的话原文资料上则会抓 10/16 10:13
15F:→ soyoso: a1:a2,这方面xldown或xlup可互用看看 10/16 10:15
16F:→ ptguitar: 感谢大大们的指点 10/16 10:19
17F:→ ptguitar: 如果A1没资料 那往右边的最後一栏位要怎麽写.. 10/16 10:23
18F:→ soyoso: 储存格的话 [xfd1].end(xltoleft) 栏号的话加column 10/16 10:25
19F:→ ptguitar: 真神 感谢S大 10/16 10:28
20F:→ soyoso: 如使用上不限2003,2007以上格式 cells(1,columns.count) 10/16 10:31
21F:→ soyoso: 来取得iv1或xfd1最右侧栏号储存格 10/16 10:33
22F:→ newacc: 我会建议把Instr判断放在for each外面,可以省一些时间 10/16 10:36
23F:推 poeta: 好难喔 QQ 10/17 21:51