Nếu bạn quan tâm đến giải pháp Power Query, hãy xem hướng dẫn về API Google Dịch của tôi:
Bạn có thể tìm thấy một triển khai VBA đơn giản bên dưới bằng cách sử dụng Thư viện đối tượng XML của Microsoft. Bạn chắc chắn sẽ gặp phải các giới hạn yêu cầu API của Google khi bạn có quá nhiều mục. Đó là lý do tại sao giải pháp Power Query tốt hơn nhiều vì nó gửi ít yêu cầu hơn bằng cách kết hợp tất cả các giá trị ô và chia nhỏ giá trị phản hồi cho phù hợp. Ngoài ra, việc phân tích cú pháp giá trị JSON trả về trong PQ sẽ dễ dàng hơn.
Tương tự có thể được áp dụng trong VBA, nhưng tôi đề xuất phương pháp Power Query thay thế. Tuy nhiên, những điều sau đây sẽ là một khởi đầu tốt trong VBA.
Public Function GoogleTranslate(txt, src, trg)
' Requires Microsoft XML Reference (Tool->References->Microsoft XML v6.0)
Dim xmlHttp As MSXML2.XMLHTTP60
Dim response As String
Set xmlHttp = New MSXML2.XMLHTTP60
With xmlHttp
.Open "GET", "https://translate.googleapis.com/translate_a/single?client=gtx&sl=" & src & "&tl=" & trg & "&dt=t&q=" & txt, False
.send
If .status = 200 Then
response = .responseText
response = Replace(Replace(response, "[", ""), "]", "")
GoogleTranslate = Replace(Split(response, ",")(0), """", "")
Else
GoogleTranslate = CVErr(xlErrValue)
End If
End With
End Function
Book1 | ||||
---|---|---|---|---|
A | B | |||
1 | Very simple VBA implementation by using Microsoft XML Object Library | Triển khai VBA rất đơn giản bằng cách sử dụng Thư viện đối tượng XML của Microsoft | ||
2 | ||||
3 | car | xe ô tô | ||
4 | cat | con mèo | ||
5 | hello | xin chào | ||
6 | ||||
7 | xe ô tô | car | ||
8 | con mèo | cat | ||
9 | xin chào | hello | ||
Sheet1 |
Cell Formulas | ||
---|---|---|
Range | Formula | |
B1,B3:B5 | B1 | =GoogleTranslate(A1,"en","vi") |
B7:B9 | B7 | =GoogleTranslate(A7,"vi","en") |