我有一个excel(oSht loading),在单元格B67中我有“mystr”文本和单元格B110。
当我运行此VBS代码时:
Set Excel = CreateObject("Excel.application")
Excel.Workbooks.Open "C:\...\...\Desktop\myExcel.xls"
Set oSht = Excel.Worksheets("mysheet")
Set aCell = oSht.Range("B110:B111").Find("mystr")
aCell.row是67而不是110,为什么?
答案 0 :(得分:1)
使用您提供的小代码,我猜您的错误是由于您设置oSht
的方式。试试这个,让我知道会发生什么......
Set Excel = CreateObject("Excel.application")
Excel.Workbooks.Open "C:\...\...\Desktop\myExcel.xls"
Set oSht = Activeworkbook.Sheets("mysheet")
Set aCell = oSht.Range("B110:B111").Find("mystr")
确保您的...\Desktop\myExcel.xls
的工作表名为" mysheet"并且没有其他打开的工作簿具有相同的功能。
那么aCell.row
是什么?
通常检查代码的另一个选项是关闭所有Excel工作簿。单独打开myExcel.xls
,然后只需添加此代码,让我知道结果是什么:
Sub test()
Dim aCell as Range
Set aCell = Range("B110:B111").Find(what:="mystr")
Debug.print aCell.row
End Sub