VBA/VB6/VB.NET 采用金山词霸在线翻译函数(自动识别语言种类)

2019-07-22 15:13:19 浏览数 (1)

  1. VB6/VB.NET 直接调用即可
  2. EXCEL VBA 先把函数粘贴到模块中,然后在单元格单用即可
代码语言:javascript复制
Public Function FY_Data(ByVal StrData As String) As String
''***********由VB小源码编写*********************************
''**********更多精彩请继续关注,微信公众号:VB小源码**********
''**********************************************************
  On Error GoTo ERR: '出错跳转至ERR
  Dim XMLHTTP As Object '定义http对象
  Set XMLHTTP = CreateObject("Microsoft.XMLHTTP") '创建xmlhttp对象
  XMLHTTP.open "POST", "http://fy.iciba.com/ajax.php?a=fy", True  'post地址
  XMLHTTP.setrequestheader "Content-Length", Len("&f=auto&t=auto&w=" & StrData)  '数据长度
  XMLHTTP.setrequestheader "Content-Type", "application/x-www-form-urlencoded"  '数据类型
  XMLHTTP.setrequestheader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0"  '模拟浏览器发送
  XMLHTTP.send ("&f=auto&t=auto&w=" & StrData) '传送数据给服务器
  Do Until XMLHTTP.ReadyState = 4  '判断网页状态,当等于4时,数据返回成功
    DoEvents
  Loop
  ''****************************************************
  '以下部分为数据解析
  Dim JS As Object '定义js对象
  Set JS = CreateObject("MSScriptControl.ScriptControl") '创建js对象
  JS.allowui = True '使UI可见
  JS.Language = "JavaScript" '语言类型这里采用js
  JS.AddCode ("var js=" & XMLHTTP.ResponseText) '把网页返回的数据传入js对象
  If InStr(XMLHTTP.ResponseText, Chr(34) & "out" & Chr(34)) > 0 Then  '当有"out" 时采用文章输出,否者输出单词结果
        FY_Data = JS.eval("js.content.out")
  Else
        FY_Data = JS.eval("js.content.word_mean")
  End If
  ''*****************************************
  Set JS = Nothing '释放对象
  Set XMLHTTP = Nothing '释放对象
  Exit Function '退出方法
ERR:
 '返回错误值
  FY_Data = "ERROR"
End Function
vba

0 人点赞