Board logo

標題: 計算生產過程中的假日 [打印本頁]

作者: hugh0620    時間: 2011-1-5 17:51     標題: 計算生產過程中的假日

本帖最後由 hugh0620 於 2011-1-5 17:53 編輯

Dear 大大
        小弟又遇到自己無法克服的問題,主要的問題是我不會寫如何重覆運算到正確的結果
        說明:
            1.資料會有行事曆[日期,放假天數],生產資訊[預計上線日.生產天數(訂單量/產能),預計下線日]
            2.預計下線日=(預計上線日+生產天數)-1+放假日(生產過程中遇到假日的天數,需要排除,因此要加上放假日)
               * -1為預計上線日那天也算是一個生產天數所以要從預計上線日算起,因此需要-1
            問題:
            1.在附件中我是使用SUMIF來計算放假日,但是在SUMIF的條件無法使用儲存格當條件,所以我就將日期換算成值,
               用KEY IN的方式,但我需要處理的資料並不是只有一筆,請教大大該用何種方式處理較好
        2.若僅計算一次 {預計下線日(A)=(預計上線日+生產天數)-1+放假日(B)} 會產生預計下線日若加完放假日後,又遇到假日時,則該資料是不正確的
          我有想過計算完第一次預計下線日後,再重覆運算一次看放假天數(C)是否一致,若一致的話這跳出程式,表示該預計下線日是正確的
          若不一致的話,其計算方式為 正確的預計下線日=第一次預計下線日(A)+(第一次下線日的放假日(C)-放假日(B))

           請大大們指教一下
          問題如附件 [attach]4321[/attach]
作者: Hsieh    時間: 2011-1-5 23:02

回復 1# hugh0620

增加假日表輔助欄
然後先算出下線日
再反推假日數
如附件[attach]4326[/attach]
作者: hugh0620    時間: 2011-1-6 10:12

回復 2# Hsieh


    Dear 大大
        很謝謝您的回覆,但是不是我的需求,乾脆我把事情簡化好了
        我想要撈行事曆中區間的的放假天數,我先克服這個問題後,
           看寫到哪個地方又卡住,再請大大幫忙解決
        也可以讓我有練習的機會

        問題如附件範本 [attach]4329[/attach]

            可否用程式碼的方式撰寫,因為後續我會將其計算的方式寫在程式碼中,直接在SHEET中有改變時就自行運算
        若是寫函數就需要去設定保護
作者: Hsieh    時間: 2011-1-6 13:54

本帖最後由 Hsieh 於 2011-1-6 14:11 編輯

回復 3# hugh0620
  1. Private Sub CommandButton1_Click()
  2. Dim st As Date, ed As Date
  3. st = InputBox("請輸入起始日期", , Date)
  4. ed = InputBox("請輸入結束日期", , Date + 30)
  5. Set a = Columns("A").Find(st, LookIn:=xlValues)
  6. Set b = Columns("A").Find(ed, LookIn:=xlValues)
  7. If a Is Nothing Or b Is Nothing Then MsgBox "The day is not found": Exit Sub
  8. [E2] = Application.Sum(Range(a.Offset(, 4), b.Offset(, 4)))
  9. MsgBox Application.Sum(Range(a.Offset(, 4), b.Offset(, 4)))
  10. End Sub
複製代碼

作者: hugh0620    時間: 2011-1-6 15:09

回復 4# Hsieh


    Dear 大大

        實在非常感謝你~ 幫我克服了卡很久的問題~ 我也終於把它修改成我所需要的工具~ 也讓我多學習到VBA撰寫的方法
           也請大大指教看還有沒有其他需要修改的地方

       也順便提供我完成的檔案給其他有需要這方面幫助的人

       請查閱附件[attach]4331[/attach]
作者: GBKEE    時間: 2011-1-6 15:34

回復 5# hugh0620
不必再寫一次程式碼
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
CommandButton1_Click
End Sub
作者: hugh0620    時間: 2011-1-6 18:18

回復 6# GBKEE


    Dear 大大
        謝謝提醒  只是忘記把按鈕中的程式碼拿掉 因為已經有寫在當SHEET有改變時就會跟著變動:loveliness:




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)