我用下列代码实现从订单记录库中读取满足某一特定记录编号的所有记录:
sub readdetail()
dim sh:set sh=sheets("订单记录库")
co=1:jlhao=102
xx = Application.Run("myfunction.xla!orderdetail", jlhao, sh, co, ddanxinxi, k, y)
msgbox k,y
end sub
式中ddanxinxi为一个二维数组,k,y表示该二维数组的两个上限值,因为每个订单的条数都不一样。
为何k和y的值不能正确传递出来?msgbox 看到的结果是空值。
请各路高手帮我解决此问题。拜谢啦!!!!
加载宏myfunction.xla中相应的VBA代码如下:
Public Function orderdetail(searchvalue, sh, co, ordermesg, k, y) '该函数用于查询某一工作表中满足某一searchvalue的所有连续的记录的详细情况
x = sh.Cells(65525, co).End(xlUp).Row - 1 'Sheets("详情")中的记录条数
For i = 1 To x
If searchvalue = sh.Cells(i + 1, co) Then
k = 1: y = sh.[IV1].End(xlToLeft).Column
Do
ReDim Preserve ordermesg(y, k)
For j = 2 To y
ordermesg(j, k) = sh.Cells(i + k, j)
Next j
k = k + 1
Loop Until searchvalue <> sh.Cells(i + k, co)
k = k - 1 '由于最后一条记录不满足查询要求所以必须去除掉
Exit For
End If
Next i
End Function |