Я застрял в проблеме при создании простой функции, которая возвращает индекс столбца Excel, учитывая имя столбца.Я не могу понять, почему скрипт так странно себя ведет (см. Комментарии к коду для решения проблем).Я знаю, что должна быть глупая ошибка, но я просто не могу ее найти.Буду очень признателен за вашу помощь!
Ниже приведена функция, которая должна была возвращать индекс столбца в листе Excel:
function fn_findColumnIndex(sheetObj, strColumnName)
Dim i, j, strTemp, intIndex
j = sheetObj.usedRange.Columns.Count 'will replace it later with better ways to get column count. This works fine for now when I tried to print the value
intIndex = 0
for i = 1 to j step 1
strTemp = sheetObj.cells(1,j).value 'Targeting the values in the 1st row(i.e, the column names)
'msgbox strTemp 'when I uncomment this line, all the values in row 1 are displayed as blank. That's the reason the function always return 0. But why are these values blank?
if strComp(strTemp,strColumnName,1) = 0 then
intIndex = j
Exit For
end if
next
fn_findColumnIndex = intIndex
end function
Ниже приведен фрагмент кода, которыйвызов вышеупомянутой функции:
set objExcel = createObject("Excel.Application")
objExcel.visible = false
objExcel.displayAlerts = false
strCDPath = "E:\Base\TestDesign\CycleDriver\CycleDriver.xlsx"
Set objBook = objExcel.WorkBooks.Open(strCDPath)
set objSheet = objBook.WorkSheets("CycleDriver")
intRunColumn = fn_findColumnIndex(objSheet,"Run") 'getting the value 0 here. Why?
intModuleColumn = fn_findColumnIndex(objSheet,"Module") 'getting the value 0 here. Why?
intTestScriptColumn = fn_findColumnIndex(objSheet,"TestScript") 'getting the value 0 here. Why?
objBook.close
objExcel.quit
Вот как выглядит лист: