返回列表 上一主題 發帖

程式練習

程式練習

各位前輩你們好!
         前輩!!範例Q78要在顯示月入73時
              按Q80鈕才能執行查帳程式
              按鈕Q80這樣寫 If [Q78] > 0 Then 查帳 或
              If [Q78] <> "買未扣款" Or [Q78] <> "賣未入帳" Or [Q78] <> "帳戶" Then 查帳
              為何都無法達成需求呢?
              請問題程式為何?
              請知道的前輩,不吝賜教謝謝再三!!

Leov61.gif (415.43 KB)

Leov61.gif

回復 2# register313
前輩!因為Excel.xls  if...有7層限制所以 範例無法儲成.xls格式
請2003版前輩見諒!!因此以動畫檔取代

LeoV61.rar (23.85 KB)

LeoV61-1.rar (15.48 KB)

TOP

回復 2# register313
前輩!!殆勢又忘了說明
               就是當Q78要在顯示月入73時
               按Q80鈕才能執行查帳程式
               原查帳程式就是附檔案內的查帳A
               只是開啟瀏覽器以便做轉帳動作罷!
               為何按鈕Q80這樣寫 If [Q78] > 0 Then 查帳 或
               If [Q78] <> "買未扣款" Or [Q78] <> "賣未入帳" Or [Q78] <> "帳戶" Then 查帳
               都無法達成需求呢?

TOP

回復 5# register313
前輩!不能這樣寫的...因為Q78的數字隨著時間的流逝
而改變,假設5月份月入99時,那If [Q78] = "月入73" Then 查帳
不就凸槌囉!不是嗎?再麻煩指導謝謝再三!!

TOP

回復 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版呢?以便銜接下一個問題辛苦你囉!謝謝再三!!

TOP

回復 9# register313
前輩!程式是對謝謝!但下一個問題Sub 增減資()
還是會用Q78公式所以只好請前輩下載自行修改Q78公式

LeoV62-03版.rar (16.57 KB)

LeoV62-07版.rar (25.61 KB)

TOP

回復 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  
       對不起!真的辛苦你囉!請再指導謝謝再三!!

LeoV62-1-03版.rar (17.68 KB)

TOP

回復 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的數字不用理會它的存在
       那是配合模擬用的
       對不起!真的辛苦你囉!請再指導謝謝再三!!

LeoV62-07版b.rar (25.35 KB)

Leov62-07B.part1.rar (878.91 KB)

Leov62-07B.part2.rar (789.91 KB)

LeoV62-07版b.rar (25.35 KB)

TOP

回復 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是主導者怎能在月底才出現呢?
     以上兩問題請再辛苦囉!謝謝再三!!

TOP

回復 16# hugh0620
前輩!謝謝你的鼓勵...其實問題並非複雜
只是自己能力差又不善表達常常累壞各位
大大實在感到殆勢萬分!!謝謝大家!!

TOP

        靜思自在 : 受人點水之恩,須當湧泉以報。
返回列表 上一主題