如题,
思路
循环D列数据
循环K列数据
将abs(D-K)的值存入一个数组
Next K
设计一个单独的函数,完成如下功能:返回最小绝对值对应的数值所在的行数
根据函数返回的行和已知的列,定位具体单元格,并将其存储在一个数组中
Next D
一次性将该数组写入到单元格
代码
Sub t()' 主过程 Dim x!, y!, r1!, r2! Dim arr1, arr2, temp_arr, conp_return, result_arr, result$' arr1 数组,一次性写入D列' arr2 数组,一次性写入K列数据' temp_arr 数组,存储D列 - K列每一个数的绝对值' conp_return 数组,接收conparison函数返回的数组' result_arr 数组,依次存储D列每一个数对应的结果' result 字符串,临时存储G列对应的值 r1 = [d2].End(xlDown).Row r2 = [k2].End(xlDown).Row arr1 = Range("d2:d" & r1) arr2 = Range("k2:k" & r2) ReDim result_arr(1 To r1) For x = 2 To r1 ReDim temp_arr(1 To r2) For y = 2 To r2 temp_arr(y - 1) = Abs(arr1(x - 1, 1) - arr2(y - 1, 1)) Next y conp_return = conparison(temp_arr) result = "" For y = 1 To UBound(conp_return) - 1 result = Cells(conp_return(y), "g") &