Страницы: 1
RSS
Перевод текста в Google через VBA
 
 Необходим код VBA для добавления формулы для перевода текста с английского на русский через public function гуглом.  
 
И вам тоже здравствуйте!
Try
Изменено: Андрей VG - 25.11.2019 19:30:22
 
Или здесь я выкладывал: Перевод текста в ячейках через Google
работает 100% второй вариант(первый работал раньше, но сейчас Google его заблокировал)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо большое, но формулы почему то не работают, ни одна.
 
Цитата
TokarevP написал:
но формулы почему то не работают, ни одна
приведите доказательства такого "свинского" поведения формул, приложив файл-пример
 
   Файл с макросами из Try смогу перекинуть несколько позже, с другого компьютера, потому как с данного при копировании кода вылазят знаки вопросов, при добавлении макросов, из Try не появлялись пользовательские формулы.
Изменено: TokarevP - 26.11.2019 11:13:25
 
1 Вариант - (=GoogleTranslate) формула исчезает (становится белым цветом и результата нет)
2 Вариант(=GoogleTranslate_IE() - все зависает ( при включенном IE).

 
Изменено: TokarevP - 30.11.2019 21:14:05
 
А чем стандартная программа QTranslate плоха?
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Проверил - видимо, Google опять что-то изменил - теперь все генерируется скриптами и надо искать пути обхода.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Alemox написал:
А чем стандартная программа  QTranslate  плоха?
Программа отличная, но для трансляции в excel необходимо копировать и вставлять ячейки. В экселе же можно все автоматизировать выгрузками.
 
Код
Option Explicit

Sub GOOGLE_PEREVOD()
Dim OBJHTTP As Object
Dim URL$, STR$, TXT$, PEREVOD$
Dim N&, K&
TXT = InputBox("ВВЕДИТЕ ПЕРЕВОДИМЫЙ ТЕКСТ", "ALEMOX")
If TXT = "" Then Exit Sub
TXT = Replace(LTrim(RTrim(TXT)), " ", "%20")
Set OBJHTTP = CreateObject("MSXML2.XMLHTTP")
URL = "https://www.google.ru/async/translate?vet=12ahUKEwiKgq2y4YnmAhVCw4sKHXwUArIQqDgwAHoECAsQHw..i&ei=QBfeXYriG8KGrwT8qIiQCw&yv=3"
With OBJHTTP
    .Open "POST", URL, False
    .setRequestHeader "content-type", "application/x-www-form-urlencoded;charset=UTF-8"
    .send "async=translate,sl:en,tl:ru,st:" & TXT & ",id:1574836225475,qc:true,ac:true,_id:tw-async-translate,_pms:s,_jsfs:Ffpdje,_fmt:pc"
    If .Status = 200 Then
        STR = .ResponseText
        N = InStr(1, STR, "target-text"">") + 13
        K = InStr(N, STR, "</span>")
        PEREVOD = Mid(STR, N, K - N)
        'Debug.Print PEREVOD
        MsgBox PEREVOD, , "ПЕРЕВОД"
    Else
        MsgBox "НЕ СМОГ ПЕРЕВЕСТИ ЭТУ ЧУШЬ", vbExclamation, "ОШИБКА"
    End If
End With
Set OBJHTTP = Nothing
End Sub

Переводит, но иногда не с первого раза. По крайней мере у меня. Можно вводить слова, можно текст.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Спасибо большое всем ! В идеале лучше формулой определенной пользователем, но и этот вариант хороший.
 
Привет!
Цитата
TokarevP написал:
В идеале лучше формулой определенной пользователем
Скрытый текст
Сравнение прайсов, таблиц - без настроек
Страницы: 1
Наверх