Итак, все, что я хочу сделать, это создать функцию для оптимизации того, как я могу сегментировать данные сводной таблицы. Эти данные поступают в разных формах, таких как «245896321 - Name», «name» или «name23123», и я хочу, чтобы он возвращал полное имя человека, если ячейки содержат конкретные тексты (фамилия человека), но возвращает только значение #VALUE!Elseif возвращает #VALUE
Заранее благодарен! Вы прекрасны!
Также прошу прощения, если мое кодирование причиняет вам боль, только два дня назад я начал свое приключение в мире кодирования, если вы хотите предложить модификации, не стесняйтесь! :)
Function Financeiro (Line) as String
'=IF(ISNUMBER(SEARCH("*Person*", Line)), "Person Name")
If Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Ormelli*", Line)) Then
Financeiro = "Fernando Ormelli"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Fortuna*", Line)) Then
Financeiro = "Ricardo Fortuna"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Manocchio*", Line)) Then
Financeiro = "Ricardo Manocchio"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Stanquini*", Line)) Then
Financeiro = "Helder Stanquini"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Ivanete*", Line)) Then
Financeiro = "Ivanete Leite"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Freitas*", Line)) Then
Financeiro = "João Freitas"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Khan*", Line)) Then
Financeiro = "Marcelo Khan"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Filho*", Line)) Then
Financeiro = "Marco Filho"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Rocha*", Line)) Then
Financeiro = "Natalia Rocha"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Carvalho*", Line)) Then
Financeiro = "Vinicius Carvalho"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*SAE*", Line)) Then
Financeiro = "SAE"
ElseIf Application.WorksheetFunction.IsNumber(Application.WorksheetFunction.Search("*Raphael*", Line)) Then
Financeiro = "Raphael Vieira"
Else
Financeiro = "Manual"
End If
End Function
'Financeiro = Manual':' Ручная' переменная, определенная где-то в другом месте, или вы забыли добавить к ней кавычки? –
Я просто забыл добавлять цитаты, но ошибка все еще сохраняется. Но спасибо за это, Тим! –
Вместо того, чтобы вызывать свою функцию из ячейки листа, создайте небольшой Sub и вызовите его оттуда: вы увидите, где ошибка. 'Sub Tester(): Debug.Print Financeiro (" blah "): End Sub' –