比较两个input到数据集返回单个输出

我在编程过程中需要一些帮助,而不是程序本身(如果代码可用,那么这将更好!)。 我有一个电子表格有3列(ID,CS,部分),我试图设置一个用户的forms,如果ID和CS被指定为input,这些最接近的值设置返回一个部分(或一些部分有接近的ID和CS值)例如,数据是:

ID /// CS /// 部分

10 /// 4.2 /// PN1

12 /// 5.7 /// PN038

103.43 /// 5.7 /// PN99

并且用户inputID = 11.27,CS = 4,程序返回PN1,因为这是“最接近的”组合。

我试图通过最初循环遍历所有CS来find一个数据,然后find一个恰好在所需值之上和之下的数据,并且确定它是否出现在数据中,然后通过查看这些CS的ID来检查上面的ID,下面和确切的如果存在,然后将所有9个值输出到列表框然而,这变得非常混乱和混乱,因此,我正在寻找一个更优雅的解决scheme,这个问题。

Sub test() 'leastDeviation changed to 4447 as its maximum value is 4446. (61.75*8^2+494) leastDeviation = 4447 lastRow = Range("A" & Rows.Count).End(xlUp).Row For rowCheck = 1 To lastRow 'squared to eliminate sign deviation = 61.75 * (inputID - Cells(rowCheck, "A")) ^ 2 + (inputCS - Cells(rowCheck, "B")) ^ 2 If deviation < leastDeviation Then closest = rowCheck End If Next rowCheck closestPart = Cells(closest, "C") End Sub`