|
本帖最后由 tongxon 于 2014-1-13 21:48 编辑
如图1所示,需要在文件1的“薄片鉴定”一列中查找有“√”的行号,然后在该行的c列查找出它的钻孔编号,比如图1所示第一个做薄片鉴定的钻孔编号为Jz-Ⅱ133-137040,最后需要在图片2中文件2的B列中查找前面所找出的钻孔编号所在行,并在该行AL列(“薄片鉴定列”)备注出“薄片”,例如,Jz-Ⅱ133-137040在图片2中的B列23行,在23行AL列备注出“薄片”,我编写的代码如下:
Sub 自动在勘探总表中备注()
Dim m, m1, m2, x, k, wh, wb
Set wh = ThisWorkbook.Sheets("岩样单")
Set wb = Workbooks.Open(ThisWorkbook.Path & "/4-衢宁初测2测段钻孔信息一览表01.03戴核.xlsx")
wh.Activate
For m = 7 To wh.Range("o65536").End(xlUp).Row
If Range("o" & m) = "√" Then
m1 = [c:c].Find("Jz-*", After:=Range("c" & m), searchdirection:=xlPrevious).Row
m2 = wb.Sheets(1).[b:b].Find(Range("c" & m1)).Row
wb.Sheets(1).Range("al" & m2) = "薄片"
k = k + 1
End If
Next m
MsgBox "共有" & k & "个数据"
End Sub
运行后提示“运行时错误:'91':对象变量或 With 块变量未设置”(图片3)。
我逐步运行后发现,图片1中从上到下第一个薄片鉴定的钻孔编号Jz-Ⅱ133-137040在图片2中可以正确标注(图片4),第二个薄片鉴定的钻孔编号Jz-Ⅱ133-126917在图片2中程序运行到 m2 = wb.Sheets(1).[b:b].Find(Range("c" & m1)).Row 语句就会提示错误。
我百思不得其解,求大神指教~~
- Sub 自动在勘探总表中备注()
- Dim m, m1, m2, x, k, wh, wb
- Set wh = ThisWorkbook.Sheets("岩样单")
- Set wb = Workbooks.Open(ThisWorkbook.Path & "/4-衢宁初测2测段钻孔信息一览表01.03戴核.xlsx")
- wh.Activate
- For m = 7 To wh.Range("o65536").End(xlUp).Row
- If Range("o" & m) = "√" Then
- If Not [c:c].Find("Jz-*", After:=Range("c" & m), searchdirection:=xlPrevious) Is Nothing Then
- m1 = [c:c].Find("Jz-*", After:=Range("c" & m), searchdirection:=xlPrevious).Row
- If Not wb.Sheets(1).[b:b].Find(Range("c" & m1)) Is Nothing Then
- m2 = wb.Sheets(1).[b:b].Find(Range("c" & m1)).Row
- wb.Sheets(1).Range("al" & m2) = "薄片"
- k = k + 1
- End If
- End If
- End If
- 'm2 = wb.Sheets(1).[b:b].Find(Range("c" & m1)).Row
- 'wb.Sheets(1).Range("al" & m2) = "薄片"
- 'k = k + 1
- 'End If
- Next m
- MsgBox "共有" & k & "个数据"
- End Sub
复制代码
|
-
图片1
-
图片2
-
图片3
-
图片4
-
-
附件.zip
54.14 KB, 下载次数: 7
|