Hi all, Can anyone help me to convert this C# to VBA, this function returns a random list number that sum all equal to the given number.
Ex: Given number:100 and input: 6 then generate a list contains 6 numbers that sum to given number.
public static List<int> RandomListByIncrementing(int digitMin, double digitMax, int targetSum, int numDigits) { if (targetSum < digitMin * numDigits || targetSum > digitMax * numDigits) throw new ArgumentException("Impossible!", "targetSum"); List<int> ret = new List<int>(Enumerable.Repeat(digitMin, numDigits)); List<int> indexList = new List<int>(Enumerable.Range(0, numDigits + 1)); Random random = new Random(); int index; for (int currentSum = numDigits * digitMin; currentSum < targetSum; currentSum++) { index = random.Next(0, indexList.Count - 1); if (++ret[indexList[index]] == digitMax) { indexList.RemoveAt(index); } } return ret; }




Reply With Quote