返回列表 上一主題 發帖

用excel上網查音標

我也是一樣的問題 卡在send,請問如何處理

TOP

本帖最後由 c_c_lai 於 2016-1-26 13:41 編輯

回復 1# 自我感覺良好
回復 2# Hsieh
回復 6# GBKEE
  1. Option Explicit

  2. Sub searchIT(Rng As Range)
  3.     Dim XH As Object
  4.     Dim shpRm As Shape
  5.    
  6.     '  清除已有的解釋及音標
  7.     With Rng.EntireRow
  8.         .Resize(1, .Columns.Count - 1).Offset(0, 1).Clear
  9.     End With
  10.    
  11.     '  開啟網頁
  12.     Set XH = CreateObject("Microsoft.XMLHTTP")
  13.     With XH
  14.         .Open "get", "http://tw.dictionary.search.yahoo.com/search?p=" & Rng.Text, False
  15.         .send
  16.         On Error Resume Next
  17.         '  摘取第一組中文翻譯
  18.         '  Rng.Offset(0, 2) = Split(Split(.responseText, "class=""description""><p>1.")(1), "<")(0)
  19.         If InStr(.responseText, "><h4>1.") > 0 Then Rng.Offset(0, 2) = Trim(Split(Split(.responseText, "><h4>1.")(1), "<")(0))
  20.         '  摘取KK音標
  21.         '  Rng.Offset(0, 1) = Left(VBA.Split(.responseText, "KK</span>  ")(1), InStr(VBA.Split(.responseText, "KK</span>  ")(1), "]"))
  22.         '  Rng.Offset(0, 1) = Split((Split(.responseText, "KK</span>")(1)), "<span>")(0)
  23.         If InStr(.responseText, ">KK[") > 0 Then Rng.Offset(0, 1) = "[" & Split(Split(.responseText, ">KK[")(1), "]")(0) & "]"
  24.     End With
  25.    
  26.     Rng.Select
  27. End Sub

  28. Sub Ex()
  29.     Dim Rng As Range
  30.    
  31.     For Each Rng In ActiveSheet.Range("A1", ActiveSheet.Range("A" & Rows.Count).End(xlUp))
  32.         Rng.Select
  33.         If Rng.Value <> "" Then
  34.             searchIT Rng
  35.         End If
  36.     Next
  37. End Sub
複製代碼

E.png (18.87 KB)

E.png

E.png (18.87 KB)

E.png

TOP

        靜思自在 : 人生沒有所有權,只有生命的使用權。
返回列表 上一主題