Функция Excel для преобразования английских имен на арабский язык

Я пытаюсь добавить функцию VBA на свой листок excel, я могу перевести или преобразовать имена в арабский, чтобы остановить их в моей базе данных. Я добавил вкладку разработчика и открыл редактор, и я добавил следующую функцию, но она не работает … Любая помощь пожалуйста

Function Translate_To_Arabic(str) As String ' Tools Refrence Select Microsoft internet Control Dim IE As Object, i As Long Dim inputstring As String, outputstring As String, text_to_convert As String, result_data As String, CLEAN_DATA Set IE = CreateObject("InternetExplorer.application") ' TO CHOOSE INPUT LANGUAGE inputstring = "auto" ' TO CHOOSE OUTPUT LANGUAGE outputstring = "ar" text_to_convert = str 'open website IE.Visible = False IE.navigate "http://translate.google.com/#" & inputstring & "/" & outputstring & "/" & text_to_convert Do Until IE.ReadyState = 4 DoEvents Loop Application.Wait (Now + TimeValue("0:00:5")) Do Until IE.ReadyState = 4 DoEvents Loop CLEAN_DATA = Split(Application.WorksheetFunction.Substitute(IE.Document.getElementById("result_box").innerHTML, "</SPAN>", ""), "<") For j = LBound(CLEAN_DATA) To UBound(CLEAN_DATA) result_data = result_data & Right(CLEAN_DATA(j), Len(CLEAN_DATA(j)) - InStr(CLEAN_DATA(j), ">")) Next IE.Quit transalte_using_vba = result_data End Function 

Проблема в том, что ваша последняя строка кода должна быть:

 Translate_To_Arabic = result_data 

Вы неправильно изменили «Перевести»

Также убедитесь, что вы добавили ссылку на Microsoft Internet Controls

Если вы хотите использовать эту функцию в качестве UDF, используйте этот код:

 Function Translate_To_Arabic(Rng As Range) As String ' Tools Refrence Select Microsoft internet Control Dim IE As Object, i As Long Dim inputstring As String, outputstring As String, text_to_convert As String, result_data As String, CLEAN_DATA Set IE = CreateObject("InternetExplorer.application") ' TO CHOOSE INPUT LANGUAGE inputstring = "auto" ' TO CHOOSE OUTPUT LANGUAGE outputstring = "ar" text_to_convert = Rng.Text 'open website IE.Visible = False IE.navigate "http://translate.google.com/#" & inputstring & "/" & outputstring & "/" & text_to_convert Do Until IE.ReadyState = 4 DoEvents Loop Application.Wait (Now + TimeValue("0:00:5")) Do Until IE.ReadyState = 4 DoEvents Loop CLEAN_DATA = Split(Application.WorksheetFunction.Substitute(IE.Document.getElementById("result_box").innerHTML, "</SPAN>", ""), "<") For j = LBound(CLEAN_DATA) To UBound(CLEAN_DATA) result_data = result_data & Right(CLEAN_DATA(j), Len(CLEAN_DATA(j)) - InStr(CLEAN_DATA(j), ">")) Next IE.Quit Translate_To_Arabic = result_data End Function 

вы можете использовать эту функцию в своей книге, используя эту формулу в B1: =Translate_To_Arabic(A1) . теперь, если вы напечатаете book в ячейке A1, вы увидите كتاب в ячейке B1. если вы хотите использовать эту функцию в качестве надстройки, см. эту ссылку

Давайте будем гением компьютера.