利用excel-vba 求多組數字自行組合為指定數值的方法

例:
儲存格A1-A50為任意數字
需要在這些數字裡組合成總和為2000的數值.且不能重覆.例如50組數字中有300.1000.700.
300+1000+700=2000.
300+700+1000=2000
700+1000+300=2000
....
同樣數字 排列組合成的結果只會出現一種
本人電腦不好.所以想請excel高手幫我寫出VBA
或者不需用VBA也能完成的方法(例如用含數)
先在此感謝各位

補充一下
有爬文找到一篇snare大大的文章.內容也有PO出程式教學.只是我套用進去執行時卻出現錯誤訊息...不知道我哪裡出問題??
另外也嘗試用excel中的規劃求解.可是執行此功能時也出現"無法執行巨集SOLVER.XLAM!MainEX該巨集可能無法在此活頁簿中使用.或者已停用所有巨集"的提示框
所以已不知該怎麼辦
2018-05-22 12:19 發佈
ii44dd wrote:
.只是我套用進去執行時卻出現錯誤訊息...不知道我哪裡出問題??
另外也嘗試用excel中的規劃求解.可是執行此功能時也出現"無法執行巨集SOLVER.XLAM!MainEX該巨集可能無法在此活頁簿中使用.或者已停用所有巨集"的提示框...(恕刪)


我重新下載2016年上傳的那個excel檔檢查了一次,雖然只是介面很簡單的範例,我確定檔案沒壞、程式沒問題
https://www.mobile01.com/topicdetail.php?f=511&t=5025613
測試只用15個數字計算速度太快,所以顯示相同時間












您 excel 基本的規劃求解(內建功能),都打不開
您要檢查的是
一、office 軟體有沒有問題
二、excel巨集安全性設定、信任中心
三、防毒的防護設定
四、windows 是不是用系統管理者登入


snare大您好
excel已可以正常使用.非常感協您.
另外想請教一下.是否可將目標值設定為可以容許誤差值.以我的需求可容許的誤差值約±50內.
例:目標值2000.則1950-2050內的組合皆會排列出來
或者可以新增一儲存格是可以填寫誤差值範圍的
ii44dd wrote:
另外想請教一下.是否可將目標值設定為可以容許誤差值.以我的需求可容許的誤差值約±50內.
例:目標值2000.則1950-2050內的組合皆會排列出來
或者可以新增一儲存格是可以填寫誤差值範圍的...(恕刪)


不管您是要新增儲存格,還是直接寫在程式內

整個程式只要改一行,就可以達到您的需求,不過,這部份請自行練習

(請自行修改這行的if判斷式)



(測試結果)


snare wrote:
不管您是要新增儲存...(恕刪)


好的,我試試,謝謝
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?