Re: [算表] 储存格里面可以加入其他储存格的资料吗?

楼主: ptguitar (佩蒂吉他)   2018-10-16 09:19:14
※ 引述《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
作者: newacc (XD)   2018-10-16 09:46:00
你的for each yy那边是有问题的1.kx.offset()只会有一个格子,不需要用for each loop2.现有kx.offset写法只会在A栏中执行嗯,用手机有点难review,等等用电脑整理一下
作者: soyoso (我是耀宗)   2018-10-16 10:03:00
因变量kx有要取得a1起连续范围的资料所以kx.offset()应是不会只有一个格子,所以以for each循环是可行的且kx.offset要配合循环i值来做栏偏移,也不会只有在a栏执行该写法也不会执行于a栏,因为i起始值为1,执行上也是b栏起执行
作者: newacc (XD)   2018-10-16 10:09:00
对,对不起是我看错0rz
作者: soyoso (我是耀宗)   2018-10-16 10:12:00
p大写法用于原文资料内测试应是可行的,只需于a1处填上标题资料,让变量kx来抓取a1:a4,如无的话原文资料上则会抓a1:a2,这方面xldown或xlup可互用看看
楼主: ptguitar (佩蒂吉他)   2018-10-16 10:19:00
感谢大大们的指点如果A1没资料 那往右边的最后一字段要怎么写..
作者: soyoso (我是耀宗)   2018-10-16 10:25:00
储存格的话 [xfd1].end(xltoleft) 栏号的话加column
楼主: ptguitar (佩蒂吉他)   2018-10-16 10:28:00
真神 感谢S大
作者: soyoso (我是耀宗)   2018-10-16 10:31:00
如使用上不限2003,2007以上格式 cells(1,columns.count)来取得iv1或xfd1最右侧栏号储存格
作者: newacc (XD)   2018-10-16 10:36:00
我会建议把Instr判断放在for each外面,可以省一些时间
作者: poeta (键盘诗人)   2018-10-17 21:51:00
好难喔 QQ

Links booklink

Contact Us: admin [ a t ] ucptt.com