標題:
程式練習
[打印本頁]
作者:
myleoyes
時間:
2012-4-8 17:29
標題:
程式練習
各位前輩你們好!
前輩!!範例Q78要在顯示月入73時
按Q80鈕才能執行查帳程式
按鈕Q80這樣寫 If [Q78] > 0 Then 查帳 或
If [Q78] <> "買未扣款" Or [Q78] <> "賣未入帳" Or [Q78] <> "帳戶" Then 查帳
為何都無法達成需求呢?
請問題程式為何?
請知道的前輩,不吝賜教謝謝再三!!
作者:
register313
時間:
2012-4-8 17:40
回復
1#
myleoyes
活動廣告:
1.發問者請上傳EXCEL壓縮檔(小學生也可以)
2.配合EXCEL檔請把功能說明清楚
作者:
myleoyes
時間:
2012-4-8 17:56
回復
2#
register313
前輩!因為Excel.xls if...有7層限制所以 範例無法儲成.xls格式
請2003版前輩見諒!!因此以動畫檔取代
作者:
myleoyes
時間:
2012-4-8 18:18
回復
2#
register313
前輩!!殆勢又忘了說明
就是當Q78要在顯示月入73時
按Q80鈕才能執行查帳程式
原查帳程式就是附檔案內的查帳A
只是開啟瀏覽器以便做轉帳動作罷!
為何按鈕Q80這樣寫 If [Q78] > 0 Then 查帳 或
If [Q78] <> "買未扣款" Or [Q78] <> "賣未入帳" Or [Q78] <> "帳戶" Then 查帳
都無法達成需求呢?
作者:
register313
時間:
2012-4-8 18:30
回復
4#
myleoyes
If [Q78] = "月入73" Then 查帳
作者:
myleoyes
時間:
2012-4-8 21:35
回復
5#
register313
前輩!不能這樣寫的...因為Q78的數字隨著時間的流逝
而改變,假設5月份月入99時,那If [Q78] = "月入73" Then 查帳
不就凸槌囉!不是嗎?再麻煩指導謝謝再三!!
作者:
register313
時間:
2012-4-8 22:13
回復
6#
myleoyes
其實大大過去的一些問題,大部份都是簡單的
而重點在您設計的畫面乍看都很複雜,讓人一下子無法知道程式的前前後後
Q78的公式我看不到(我是OFFICE 2003)
從動畫看出Q78的部份公式:當今日的月份不等於明日的月份(也就是每個月月底),讓Q78產生 月入XX(XX是變動的數字)
整個功能只看出上述,所以這樣對嗎?
If Month(Now()) <> Month(Now() + 1) Then 查帳
作者:
myleoyes
時間:
2012-4-9 12:01
回復
7#
register313
前輩!謝謝!"大大如此稱呼"小弟實在擔當不起
慚愧!慚愧!原本應該是將Q78的公式
改為03版適用公式,無奈小弟沒有用過
03版也不知如何改,所以用動畫來詮釋
在這幾種狀況下按Q80鈕是無效的
要將檔案自動化原本就是煩雜的工程
因而誤導你很抱歉!!
借此機會請教導一下Q78公式
=IF(P79>Q79,"賣未入帳",IF(Q79>P79,"買未扣款",IF(O78<>"交易區",Q79,IF(MONTH(TODAY())<>MONTH
(TODAY()+1),"月入"&ROUND(SUM(OFFSET(D68,0,(MONTH(TODAY())-1)*2,,),OFFSET(D69:E69,0,(MONTH(TODAY())-
1)*2,,),OFFSET(B70:C70,0,(MONTH(TODAY())-1)*2,,)),0),"帳戶"))))
要如何改才能適用03版呢?以便銜接下一個問題辛苦你囉!謝謝再三!!
作者:
register313
時間:
2012-4-9 15:08
本帖最後由 register313 於 2012-4-9 15:14 編輯
回復
8#
myleoyes
這次應該要對了吧
X = [O78] = "交易區" And [Q78] <> "賣未入帳" And [Q78] <> "買未扣款" And [Q78] <> "帳戶" And Month(Now()) <> Month(Now() + 1)
If X Then MsgBox "查帳"
Q78的公式(OFFICE 2003版)就不研究了
作者:
myleoyes
時間:
2012-4-9 21:48
回復
9#
register313
前輩!程式是對謝謝!但下一個問題Sub 增減資()
還是會用Q78公式所以只好請前輩下載自行修改Q78公式
作者:
register313
時間:
2012-4-9 23:29
回復
10#
myleoyes
TEMP = Right([Q78], Len([Q78]) - 2)
[Q79] = [Q79] - TEMP
Y = Year(Now()) - 2012
If Month(Now()) = 1 Then [CF3].Offset(Y, 0) = 300
[CF3].Offset(Y, 0) = [CF3].Offset(Y, 0) - TEMP
2段程式
但不知該放入 查帳 或 增減資
作者:
myleoyes
時間:
2012-4-10 12:03
回復
11#
register313
前輩!2段程式 但不知該放入 查帳 或 增減資
小弟也迷糊囉!看說明(無法儲存檔案到 TEMP 目錄 (錯誤 735))
也無法完全了解前輩的意思,那就依小弟的想法說明如下
先說明附檔的程式與儲存格內容只適用模擬用途
Case "Q80"必須如下程式才正確
X = [O78] = "交易區" And [Q78] <> "賣未入帳" And [Q78] <> "買未扣款" And [Q78] <> "帳戶" And Month(Now()) <> Month(Now() + 1)
If X Then 查帳
Sub 增減資()
[CF3]原方式
[CF3] = "=" & [CF3] & "-" & [Q78]
執行後CF3=240-40
問題是程式無法接受這種型態
大概是Q78是公式非數字原因罷!
再則需求是CF3=300-10-20-30-40
同時也無法適用下一年度所以要修改
至於之前CF3=300-10-20-30就不用管它
只要將每月的數字往後寫入即可,好比4月~5月..等等
CF3=300-10-20-30-40(4月)-50(5月)..小弟是如此想
[Q79]原方式
[Q79] = [Q79] - [Q78]
程式無法接受這種型態
大概是Q78是公式非數字原因罷!
依前輩程式是正確 TEMP = Right([Q78], Len([Q78]) - 2)
[Q79] = [Q79] - TEMP
End Sub
跨年問題小弟想法將跨年程式獨立出來比較單純
Private Sub Workbook_Open()
If Month(Date) = 1 And Day(Date) = 1 Then 跨年
End Sub
Sub 跨年()
Y = Year(Now()) - 2012
[CF4].Offset(Y, 0) = [CF3]
大概這意思可以往下寫[CF5],[CF6]...等等
End Sub
對不起!真的辛苦你囉!請再指導謝謝再三!!
作者:
register313
時間:
2012-4-10 14:27
回復
12#
myleoyes
[attach]10382[/attach]
我用上一次的檔案去修改的,試試看
最大的關鍵是 1.所要的功能是什麼 2.邏輯問題 3.程式語法不是問題
目前功能:
1月最後一日,按Q80 => Q78=月入5, CF3=300-10=290
2月最後一日,按Q80 => Q78=月入10,CF3=300-10-20=270
3月最後一日,按Q80 => Q78=月入15,CF3=300-10-20-30=240
...
明年1月最後一日,按Q80 => Q78=月入5, CF4=300-10=290
明年1月最後一日,按Q80 => Q78=月入10, CF4=300-10-20=270
不了解的是:
300是什麼
1月最後一日,按Q80 => Q78就變成"賣未入帳", 那 2月最後一日,按Q80不是也沒作用
作者:
myleoyes
時間:
2012-4-11 01:20
回復
13#
register313
前輩!1月最後一日,按Q80 => Q78就變成"賣未入帳",
那 2月最後一日,按Q80不是也沒作用
這不用擔心實際的檔案O79與P79的公式與程式會自動平衡
不會發生Q78就變成"賣未入帳"的情況,不能按Q80鈕
因為範例實在無法模擬真實狀況又忘了告訴你很抱歉
1,按Q80鈕按必須條件已確定,請暫不用想它沒作用
2,1月最後一日,按Q80 => Q78=月入5,CF3=300-10=290
這裡是小弟疏忽,因為03版Q78無法用公式
所以直接用數字心想1月份用10,2月份用20比較容易記
卻忘了原本公式的數據1月份是5實在傷腦筋歹勢啦!
不管是月入10或月入5,CF3=300-10或CF3=300-5是公式型態
而非前輩的CF3=300-10=290值型態這是重點
3,300是什麼?300是假設101/1/1投入的資金,現在是4月份
開始記錄所以必包含1~3月份的數字因此
CF3=300-10-20-30-40(03版)或CF3=300-5-10-15-20(07版)
再附檔說明
1,請先看動畫檔,再開檔案比較容易明白
2,Leov62-07B檔內的P79的數字不用理會它的存在
那是配合模擬用的
對不起!真的辛苦你囉!請再指導謝謝再三!!
作者:
register313
時間:
2012-4-11 10:37
回復
14#
myleoyes
要從2012年1月開始測試,有不合需求的地方要告訴我
Sub 增減資()
Money = 300 '2012年一開始的增減資
XX = Right([Q78], Len([Q78]) - 2) '取出每個月月底的Q78的月入XX中的XX(數字)
[Q79] = [Q79] - XX '每個月月底的Q79=Q79-XX
Y = Year(Now()) - 2012 '計算目前年份與2012年相差Y
'=================================================
If Month(Now()) = 1 Then '如果月份為1月月底
If Year(Now()) = 2012 Then '如果年份為2012年設定CF3=Money=300
[CF3] = Money
Else: [CF3].Offset(Y, 0) = [CF3].Offset(Y - 1, 0) '如果年份為2013年設定CF4=CF3,年份為2014年設定CF5=CF4
End If
End If
'=================================================
[CF3].Offset(Y, 0) = [CF3].Offset(Y, 0) - XX '2012年每個月月底CF3=CF3-XX,2013年每個月月底CF4=CF4-XX
End Sub
複製代碼
[attach]10398[/attach]
作者:
hugh0620
時間:
2012-4-11 11:00
回復
14#
myleoyes
myleoyes 你的東西~ 之前有寫過~ 都蠻複雜的~
很想研究一下你要的東西~ 可惜~ 現在工作較忙~
沒有時間來研究~ 真是殘念~
不過也給你打氣~ 希望你的問題能夠被解決~
作者:
myleoyes
時間:
2012-4-11 22:32
回復
15#
register313
前輩!程式的流程與數字完成正確
需修改的如下!
1,前輩!忘了小弟一再強調的CF欄要的
CF3=300-5-10-15-20 是公式的型態
而非CF3=300-5=295 是值的型態
CF欄為何要公式的型態呢?
因為一筆的一筆的記錄流程萬一數字錯誤
就很容易解除問題
2,當跨年時前輩的程式要在月底執行
查帳才產生102年的日期這樣子
檔案的其他程式都得停擺
因為檔案起始點就是BY欄的日期然而
BY4=IF(CF4="","",IF(BY4<>"",BY4,EDATE(BY3,12)))
所以CF4是主導者怎能在月底才出現呢?
以上兩問題請再辛苦囉!謝謝再三!!
作者:
myleoyes
時間:
2012-4-11 22:39
回復
16#
hugh0620
前輩!謝謝你的鼓勵...其實問題並非複雜
只是自己能力差又不善表達常常累壞各位
大大實在感到殆勢萬分!!謝謝大家!!
作者:
register313
時間:
2012-4-12 10:36
回復
17#
myleoyes
借CG欄一用
請從101年年初開始操作
[attach]10416[/attach]
作者:
myleoyes
時間:
2012-4-13 12:10
回復
19#
register313
前輩!
請看你的智慧....是否也為自己感到驕傲呢?哈哈!!
未來的夢想將會在彈指之間實現
這就是願景...檔案自動化,生活化是必然的趨勢
你超厲害!真的太感恩也太辛苦你囉!
除了謝謝...還是謝謝再三!!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)