|
如图1,需要根据文件2各工作表的c6单元格的内容,在文件1的aa列查找对应的行数(图2),再在该行的o列(“薄片鉴定”列)录入文件2同一工作表的F7单元格的岩石名称。例如,本例中需要根据文件2的“薄片鉴定”工作表C6 单元格的“CK170+860.30右0.01m”,在文件1的AA列查找到它在第37行,并在文件1的o列37行填写文件2的F7单元格内容“强硅化二云斜长变粒岩”。我编写的代码如下:
Sub 自动录入薄片鉴定结果()
Dim f, wb, wh, x, m1
f = Application.GetOpenFilename("Excel2003,*.xls,Excel2010,*.xlsx", 1)
Set wb = Workbooks.Open(f)
Set wh = ThisWorkbook.Sheets(1)
wh.Activate
wc = wb.Sheets.Count
For x = 1 To wc
With wb.Sheets(x)
m1 = wh.Range("aa:aa").Find(.Range("c6"), LookAt:=xlWhole).Row
wh.Range("o" & m1) = .[f7]
End With
Next x
End Sub
运行后报错如图3。请高手指点一二~~
本帖最后由 810126769 于 2014-1-16 09:53 编辑
tongxon 发表于 2014-1-15 21:32
可是“CK170+860.30右0.01m”确实有试验结果啊,如果按照你的代码,程序找不到CK170+860.30右0.01m后机会 ...
原来没有注意到,以为真的没有
这个数据,看了你的问题,再仔细查看了一下,真的有这个数据,只是它们是不完全不相同的,EXCEL就认为它们不同。
你再仔细看看,2.xls的表1中的
CK170+860.30右0.01m 的“右”字前没有空格,而1.xls中AA列的这个数据
CK170+860.30 右0.01m在下面,它的“右”字前有一个空格。这对于EXCEL来说,它们就不是同一个数据。所以还是查找不到。
你的数据太不规范了,有的中间有空格,有的没有空格。不太好处理。
|
-
图片1
-
图片2
-
图片3
-
-
附件.rar
20.19 KB, 下载次数: 13
附件
|