Sub search
Set objExl = CreateObject("Excel.Application")
Set objWb = objExl.Workbooks
objWb.Open("C:\Documents and Settings\user\Desktop\book.xls")
Set strbol = objWb("C:\Documents and Settings\user\Desktop\book.xls").Sheets(1).Cells.Find(document.getElementById("q").Value, Range("A1"), xlValues, xlPart, xlByRows, xlNext, False, False)
Set objDiv = document.getElementById("content")
objDiv.innerText = "Result: " & objWb.Sheets(1).Cells(strbol.Row,strbol.Column).Offset(0,-4).Value
objWb("C:\Documents and Settings\user\Desktop\book.xls").Close
Set objWb = Nothing
Set objExl = Nothing
End Sub
Выше есть HTA-код, который получает слово запроса из текстового поля HTA, находит это слово в excel и возвращает/отображает итоговое значение строки смещения в содержимом с именем div. Я могу запустить скрипт успешно до открытия файла excel. Но скрипт дает ошибку в строке: Set strbol. , , Сообщение об ошибке: Подзаголовок за пределами допустимого диапазона.HTA и функция поиска Excel VBA
Я тестировал метод поиска в excel vba, который работал, но не в HTA примечание: публикация из IE6, поэтому прощение за отступы и ошибка форматирования.
Попробуйте '1' Изменить' Set objWb = objExl.Workbooks' в 'Набор objWb = objExl.Workbooks.Open (" C: \ Documents и Settings \ user \ Desktop \ book.xls ")' Then '2' Удалить строку' objWb.Open ("C: \ Documents and Settings \ user \ Desktop \ book.xls") 'и затем' 3' изменить 'Установить strbol = objWb («C: \ Documents and Settings \ user \ Desktop \ book.xls»). Листы (1) .... 'to' Установить strbol = objWb.Sheets (1) ... ' –
Также измените' objWb («C: \ Documents and Settings \ user \ Desktop \ book.xls»). Закрыть 'to' objWb.Close' –
@SiddharthRout: Сделаны изменения, делает код маленьким и лучше. Но теперь ошибка находится в одной строке, но для значения Range («A1») (смотрите параметр после завершения) Сообщение об ошибке: Тип Mismatch 'Range' – msinfo