返回列表 上一主題 發帖

[發問] 針對 (特定範圍內) 字體顏色自動計算加總與按鈕更新問題

[發問] 針對 (特定範圍內) 字體顏色自動計算加總與按鈕更新問題

各位版大好

遇到一個問題和寫法請各先進指導 !! 先感謝大家~~

問題:按鈕換頁後,VBA因為按鈕代號不同,無法執行,是否有通用的寫法可以在更換下一個工作頁時會自動偵測按鈕代號

附件是『針對每個月需計算庫存與接單後剩餘的數量自己寫的簡易VBA,想請教先進是否有其他方式能簡化程式碼 (最下面顏色設定如果有10個就會寫不完了):L ,謝謝

生產計劃.rar (644.03 KB)
VBA 新手進化中

本帖最後由 Hsieh 於 2019-1-11 15:58 編輯

是這樣的意思嗎?
  1. Sub 更新日期_Click()
  2.     ActiveObject = Application.Caller '啟動程序的按鈕
  3.     ActiveSheet.Shapes(ActiveObject).TextFrame.Characters.Text = "更新日期:" & Now()
  4.     Call ColorSUM
  5.    
  6. End Sub

  7. Public Sub ColorSUM()
  8.     Dim k, i As Integer, Cp(), Dic
  9.     Set Dic = CreateObject("Scripting.Dictionary")
  10.     Cp = Array(3, 13, 33, 4, 9, 22, 27, 1) '色碼
  11.     For i = 0 To UBound(Cp)
  12.        Dic(Cp(i)) = 0
  13.     Next
  14.    
  15.    r = Range("F500").End(xlUp).Offset(3).Row '從特定位置開始加總
  16.    
  17.     For k = 9 To 33
  18.         For i = 17 To Range("C17").End(xlDown).Row '循列計算顏色加總
  19.           Dic(Cells(i, k).Font.ColorIndex) = Dic(Cells(i, k).Font.ColorIndex) + Cells(i, k)
  20.         Next
  21.         For j = 0 To UBound(Cp)
  22.            Cells(r, k).Offset(j).Font.ColorIndex = Cp(j)
  23.            Cells(r, k).Offset(j).Font.Bold = True
  24.            Cells(r, k).Offset(j) = Cells(5, k) + Dic(Cp(j))
  25.            Dic(Cp(j)) = 0 '歸零
  26.         Next
  27.     Next
  28.    
  29. End Sub
複製代碼
回復 1# JT1221
學海無涯_不恥下問

TOP

回復 2# Hsieh

感謝Hsieh超級版主的回覆,你寫的程式碼超級精簡,正在研究中 !!   {:3_59:}

試執行之後,按鈕的部份沒問題,但是下面計算結果有點問題,應該是我原來的說明不清楚造成。
我做了一張圖來說明計算的規則
最上面1的部份是現在庫存,中間的區塊不理會
2的部份是客戶需求,目前裡面都是【-值】,所以會直接用+號來做計算
3的部份是我需要計算的目前剩餘庫存,目前依1的部份來說,應該會有三種顏色,但實際執行有四種顏色 !!
因為程式碼還看不太懂,所以要麻煩再幫忙看看 !!  感謝 !!


生產計劃-執行後.rar (643.12 KB)
VBA 新手進化中

TOP

        靜思自在 : 愛不是要求對方,而是要由自身的付出。
返回列表 上一主題