作者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/m.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