根据variables的值声明variables的数量

我试图比较n数字,看哪一个是最小值。 n是来自单元格的值

 n = Sheet1.Range("C6").Value 

所以如果n等于2那么我必须声明两个variables并使用min函数。 数据将被安排在两个不同的列中,如下所示。 我不知道数据在哪里结束。

  1 2 3 4 ' ' ' ' 

我想用数组来声明基于n和循环的variables,但我不知道如何和我不熟悉VBA中的数组。 我对所有解决scheme都是开放的。 你不必使用数组,但这是我想用的方式之一。 目前,我只是通过获得我已经宣布的两个价值观来做到这一点。 我需要使用循环来获得每行比较两个不同的值,并find最小值。 我的代码没有错误。

 x = 1 Do Until IsEmpty(Sheet9.Cells(x, 30).Value) no2 = Sheet9.Cells(x, 30).Value no1 = Sheet9.Cells(x, 31).Value result = WorksheetFunction.Min(no1, no2) Sheet9.Cells(x, 30).Value = result x = x + 1 Loop 

如果我理解你的问题,你只需要在Do Until Loop中添加一个条件就可以了…

 X = 1 Do Until IsEmpty(Sheet9.Cells(X, 30).Value) Or X > Sheet1.Range("C6").Value no2 = Sheet9.Cells(X, 30).Value no1 = Sheet9.Cells(X, 31).Value result = WorksheetFunction.Min(no1, no2) Sheet9.Cells(X, 30).Value = result X = X + 1 Loop 

让包含数值的单元格考虑为'C6'。

如果你在'C6'中有一个3的值,那么你已经find了单元格'A30:A32'的最小值,并将这个值粘贴到'A30'中,这是我从你的问题中理解的。

 Sub Minarr() dim nos() as integer n=int(sheet1.range('C6').value) set cell=Sheet9.cells(1,30) if not isempty(cell) then for i=0 to n nos[i]=cell.offset(i,0).value next i result=Application.worksheetfunction.min(nos) cell.value=result end if end sub