各位大虾门,怎样用在excel宏中用VB实现上述查询功能

各位大虾门,怎样用在excel宏中用VB实现上述查询功能。
也就是在一个新表中以“孙”“1月”为条件就能搜索出来其一月份请过7天病假。
下面是俺的编程,总是提示子过程或函数未定义,求正解!!
Function chaxun(TJ1, TJ2)
Set tash = Sheets("原始表")
Select Case TJ1
'确定搜索值的行列数
H = Row(TJ1)
L = Column(TJ2)
Case Else
H = 1
L = 1
End Select
chaxun = tash.Cells(H, L)
End Function

第1个回答  2013-03-19
一定要用VBA吗?
用函数公式很容易就解决了
假设截图左上角单元格为A1,且第一张图的数据在工作表SHEET1
则第二张表中的B2单元格可输入公式:=INDEX(SHEET1!$A:$N, MATCH($A2,SHEET1!$B:$B,0), MATCH(B$1, SHEET1!$1:$1, 0))
然后右拉、下拉即可

另外,最好按工号检索,因为姓名可能会有重名。
按工号检索时,假设A列是工号,B列是姓名,C列开始是月份,
则公式为:=INDEX(SHEET1!$A:$N, MATCH($A2,SHEET1!$A:$A,0), MATCH(C$1, SHEET1!$1:$1, 0))本回答被网友采纳
第2个回答  2013-03-20
row 和column 是单元格 返回行号和列标的属性,该属性只读.
要定位一个单元格可以使用find方法.

function chaxun(tj1,tj2)
Dim tash As Worksheet
Set tash = Sheets("原始表")
h = tash.Columns(2).Find(tj1, lookat:=xlWhole).Row
l = tash.Rows(1).Find(tj2, lookat:=xlWhole).Column
chaxun = tash.Cells(h, l)
end function本回答被提问者采纳
相似回答