在Excel中使用查找范围

我有一个excel(oSht加载),并在单元格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,为什么?

用你提供的小代码,我会猜测你的错误是由于你如何设置的。 试试这个,让我知道发生了什么…

 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”的工作表,并且没有其他打开的工作簿具有相同的function。

什么是aCell.row然后?

一般来说,检查代码的另一种方法是closures所有Excel工作簿。 打开myExcel.xls ,然后添加这个代码,让我知道结果是什么:

 Sub test() Dim aCell as Range Set aCell = Range("B110:B111").Find(what:="mystr") Debug.print aCell.row End Sub