找数组中与其他数绝对值差和最小的数_VBA例8 返回最小绝对值对应的数

76469ae1805607c5adeecb0e3e94bb68.png

如题,

思路

循环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") & 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值