50分:在excel中操作中的难题

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:06:05
在工作中使用,主要是比较两列单元格,具体可简化为如下模型:
如第一列中A1至A26为字母A至Z,第二列B1为任意一个字母,第三列C1要返回B1这个字母在A1中的行数.
希望高手解决,谢谢.
请用函数解决,如B2再来一个字母,则在C2处用填充柄即可得到行数.
一楼朋友的方法好象不行啊,第一种方法肯定不行,我的数据有上千个啊,呵呵.
不知能不能用编程的方法,用个循环来解决.

我想了又想,利用函数实在是没好办法,像楼上说的,对于几个数据来说可行,但是如果是几十数据,可能光函数长度就让人怕了。所以我找了个变通的方法。利用定义函来算。
启动Excel,按Alt+f11启动VBA编辑,然后选择插入菜单中的“模块”,再将下面的代码写入到模块中

Function findchr(myrange As Range, mychr As Variant) As Variant

Dim myc As Range
flag = False

For Each myc In myrange

If myc.Value = mychr Then
findchr = myc.Row '& "," & myc.Column

flag = True
Exit For
End If

Next

If Not flag Then
findchr = "没有找到"
End If

End Function
'————————————————————————
保存,关闭VBA。这样,你就可以在这个Excel文件中,象用Excel自带函数一样来使用我们所定义的这个函数:
findchr(myrange,mychr)
这其中myrange是我们查找的目标区域(可以是行,列,块,多种选等选区),mychr是我们的查找内容,可以是单元格,也可以直接输入数值,字母等。

另外你将上面代码
findchr = myc.Row '& "," & myc.Column
这句中的单引号去掉,就可以同时返回行号和列号

findchr = "没有找到"
这句是为了提示没找到,你可以的这里面的几个汉字改为你想要的提示。