У меня есть функция в Excel VBA, которая ищет заголовки и использует их для определения определенных диапазонов. Похоже, что все будет отлично, но когда я его назову, он разрывается на этой строке: Set rngHeaders = Intersect(Worksheets(sheetName).UsedRange, Worksheets(sheetName).Rows(ROW_HEADERS))
, и я не уверен, почему. Это дает мне индекс ошибки вне диапазона. Переменная sheetName - это строка, и лист Sheet8 (который я перехожу в нее) существует. Я добавил всю функцию ниже в дополнение к строке, где я называю ее в Sub. Любая помощь будет принята с благодарностью.Функция заголовка в VBA
Function FindHeader(HEADER_NAME As String, sheetName As String) As Range
Dim rngHeaders As Range
Dim rngHdrFound As Range
Const ROW_HEADERS As Integer = 1
Set rngHeaders = Intersect(Worksheets(sheetName).UsedRange, Worksheets(sheetName).Rows(ROW_HEADERS))
Set rngHdrFound = rngHeaders.Find(HEADER_NAME)
If rngHdrFound Is Nothing Then
MsgBox ("ERROR: Cannot find appropriate header.")
Exit Function
End If
Set FindHeader = Range(rngHdrFound.Offset(1), rngHdrFound.End(xlDown))
End Function
линия, которая называет его:
Sheet8.Activate
sheetName = "Sheet8"
Set rng1 = FindHeader("Client Exclusion List", sheetName)
Он даже не добирается до этой строки ... Он разбивается на строку до определения 'rngHdrFound'. – Philip
Можете ли вы попробовать следующее в строке, которая вызывает вашу функцию: Измените вторую строку '' sheetName = "Sheet8" '] на' sheetName = Sheet8.Name' – user3561813
ahhh my bad, подумал, что она ломается на 'Set FindHeader .. .' –