[算表] 計帳vba

看板Office作者 (鴻)時間12年前 (2014/01/10 14:25), 編輯推噓0(0014)
留言14則, 1人參與, 最新討論串1/1
我想寫一個會自動將第一欄變成輸入資料時的日期,第二欄是輸入的單筆金額 第三欄是過去單筆金額的總計 Sub test01() Dim x As Integer Do x = InputBox(prompt = "請輸入單筆花費金額") Cells(Row.Count, 2).End(xlUp).Value = x Cells(Row.Count, 1).End(xlUp).Value = Date Cells(Row.Count, 3).End(xlUp).Value = Application.Sum("b2:Cells(Row.Count, 2).End(xlUp)") Loop Until x = 0 End Sub 我不知道自己哪裡出了問題 可以麻煩大家指點一下嗎? 謝謝so大 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.231.191.50

01/10 14:29, , 1F
1.prompt= 改 prompt:=
01/10 14:29, 1F

01/10 14:29, , 2F
2.Row.count 改 rows.count
01/10 14:29, 2F

01/10 14:30, , 3F
3.sum這一列原po要金額數值就好或是要公式
01/10 14:30, 3F

01/10 14:33, , 4F
要公式改"=Sum(B2:B" & Cells(Rows.Count, 2).End(xlUp).Ro
01/10 14:33, 4F

01/10 14:33, , 5F
w & ")"
01/10 14:33, 5F

01/10 14:35, , 6F
要金額改Application.Sum(Range("B2:B" & Cells(Rows.Count
01/10 14:35, 6F

01/10 14:35, , 7F
, 2).End(xlUp).Row))
01/10 14:35, 7F

01/10 14:42, , 8F
如果要往下累積的話要加offset
01/10 14:42, 8F
我想要 往下累積 筆數 請問 S大 OFFSET 要怎麼用 是這樣嗎 Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Value = x 另外 我對於 Cells(rows.count,1).end(xlup) 是數第一欄所有的列,然後往上跑 由於最後一格是空白位元,所以會取到第一個有值的格子 是這樣嗎? ※ 編輯: e002311 來自: 114.45.149.63 (01/10 20:46) ※ 編輯: e002311 來自: 114.45.149.63 (01/10 20:49) 太感謝s大了 我好想拜你為師啊 ※ 編輯: e002311 來自: 114.45.149.63 (01/10 20:58)

01/10 21:45, , 9F
1.offset的寫法是正確的,可另寫.offset(1)就好
01/10 21:45, 9F

01/10 21:46, , 10F
2.rows.count在2003是65536,2007以上是1048576列,往上跑
01/10 21:46, 10F

01/10 21:47, , 11F
抓取最後一筆有值的格子;但例外的是如果第一列也是無值時
01/10 21:47, 11F

01/10 21:48, , 12F
則是抓到第1列
01/10 21:48, 12F

01/10 21:48, , 13F
再配合offset就可以累積資料
01/10 21:48, 13F

01/10 21:57, , 14F
客氣了^^
01/10 21:57, 14F
文章代碼(AID): #1Ipv9c2h (Office)
文章代碼(AID): #1Ipv9c2h (Office)