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