返回列表 上一主題 發帖

困難題 求高手相助!!!!

困難題 求高手相助!!!!

如何 依平均值&上限&下限 產生一組數值?
假如 一組為21個數值
頭痛了很久還是想不出來 用vba可以解決也可以 :D

依條件產生數值.rar (6.52 KB)

非常感謝  jackyq 大大
兩個方法都很棒 謝謝您

TOP

回復 2# hcm19522

感謝 hcm19522大 回復
我會找時間弄懂你的函數用法的 謝謝!!!

TOP

本帖最後由 zheng211016 於 2018-2-14 23:34 編輯

給想學得人 參考:D
Sub 最簡單法___________________()

'組數過大時, 運算會極度耗時

  平均值 = [A2]
    上限 = [B2]
    下限 = [C2]
    組數 = [D2]

  Randomize                         '重置亂數
   '----------------------------Do 迴圈------------------------------------
  Do
    Value_Sum = 0
    For w = 1 To (組數 - 1)                            'for 迴圈(假如 組數21 只會跑20次)
   
        Value = Rnd * (上限 - 下限) + 下限      'Value = 亂數產生上下限之中的值
        Value_Sum = Value_Sum + Value      'Value_Sum = 把迴圈內所有Value加起來
        Range("G" & w) = Value                      '把產生的值放入儲存格內 / w = 為迴圈數
   
    Next                                                                'for 迴圈 執行到完 就可以到下一行
    殘值 = 平均值 * 組數 - Value_Sum          '殘值 = 平均值 * 組數 - 迴圈內所有的Value總和
    循環次數 = 循環次數 + 1                            '累加 Do迴圈次數
   
  Loop Until 殘值 >= 下限 And 殘值 <= 上限  '直到 殘值 >= 下限 + 殘值 <= 上限
    '------------------------結束迴圈(達成上述條件)------------------------
  Range("G" & w) = 殘值                                     '殘值放入儲存格內(也就是最後一格)
  Debug.Print 循環次數                                       '用於立即視窗顯示 Do循環次數
End Sub

TOP

        靜思自在 : 人的心地是一畦田,土地沒有播下好種子,也長不出好的果實。 -
返回列表 上一主題