返回列表 上一主題 發帖

用excel上網查音標又故障了,不知那裡出問題?

用excel上網查音標又故障了,不知那裡出問題?

50 字節以內
不支持自定義 Discuz! 代碼

001.rar (26.24 KB) 只能回傳一些中譯…
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 2# 自我感覺良好
  1. Sub Macro1()
  2. '
  3. ' Macro1 Macro
  4. '
  5. ' 快速鍵: Ctrl+p

  6.     Columns("B:B").Select
  7.     With Selection.Font
  8.         .Name = "Arial Unicode MS"
  9.         .Size = 12
  10.     End With
  11. Range("a1").Select

  12. Dim XH As Object

  13.     Dim rng As Range
  14.    
  15.       Dim iurl, iurl2 As String
  16.     '清除已有的解釋及音標
  17.     iurl = "http://tw.dictionary.search.yahoo.com/search?p="
  18.     iurl2 = "http://dict.tw/index.pl?query="
  19.     For Each rng In ActiveSheet.Range("a1", ActiveSheet.Range("a65536").End(xlUp))
  20.             rng.Select
  21.             If rng.Value <> "" Then
  22.               rng.Select
  23.               Set XH = CreateObject("Microsoft.XMLHTTP")
  24.                     With XH
  25.                         .Open "get", iurl & rng, False
  26.                         .send
  27.                         ' On Error Resume Next
  28.                         '從Yahoo字典摘取第一組中文翻譯
  29.                         n = .responseText
  30.                          If InStr(.responseText, "><h4>1.") > 0 Then rng.Offset(0, 2) = Trim(Split(Split(.responseText, "><h4>1.")(1), "<")(0))
  31.                         '摘取KK音標
  32.                         If InStr(.responseText, ">KK[") > 0 Then rng.Offset(0, 1) = "[" & Split(Split(.responseText, ">KK[")(1), "]")(0) & "]"
  33.                         .Open "get", iurl2 & rng, False
  34.                         .send
  35.                         '從DICT.TW 英漢字典擷取字義
  36.                         If InStr(.responseText, "</span><br /> &nbsp;") > 0 Then rng.Offset(0, 3) = Split(Split(.responseText, "</span><br /> &nbsp;")(1), "<")(0)
  37.                     End With
  38.              End If
  39.     Next
  40. End Sub
複製代碼
學海無涯_不恥下問

TOP

回復 3# Hsieh
n = .responseText
                         If InStr(.responseText, "><h4>1.") > 0 Then rng.Offset(0, 2) = Trim(Split(Split(.responseText, "><h4>1.")(1), "<")(0))
                        '摘取KK音標
                        If InStr(.responseText, ">KK[") > 0 Then rng.Offset(0, 1) = "[" & Split(Split(.responseText, ">KK[")(1), "]")(0) & "]"
                        .Open "get", iurl2 & rng, False
                        .send
                        '從DICT.TW 英漢字典擷取字義
                        If InStr(.responseText, "</span><br /> &nbsp;") > 0 Then rng.Offset(0, 3) = Split(Split(.responseText, "</span><br /> &nbsp;")(1), "<")(0)
                    End With
             End If
    Next
End Sub


換個方法就可以用了…
真的太感謝了。
50 字節以內
不支持自定義 Discuz! 代碼

TOP

回復 4# 自我感覺良好

亂改一通.rar (16.61 KB)

外行人把它改成這樣,程式應該還可以更簡易的

Sub searchIT(rng As Range)
    Dim XH As Object
    Dim shpRm As Shape
    Columns("B:B").Select
    With Selection.Font
        .Name = "Arial Unicode MS"
        .Size = 12
    End With
Range("a1").Select
      Dim iurl, iurl2 As String
    '清除已有的解釋及音標
    iurl = "http://tw.dictionary.search.yahoo.com/search?p="
    iurl2 = "http://dict.tw/index.pl?query="
    For Each rng In ActiveSheet.Range("a1", ActiveSheet.Range("a50").End(xlUp))
            rng.Select
            If rng.Value <> "" Then
              rng.Select
              Set XH = CreateObject("Microsoft.XMLHTTP")
                    With XH
                        .Open "get", iurl & rng, False
                        .send
                        ' On Error Resume Next
                        '從Yahoo字典摘取第一組中文翻譯
                    
                         If InStr(.responseText, "><h4>1.") > 0 Then rng.Offset(0, 2) = Trim(Split(Split(.responseText, "><h4>1.")(1), "<")(0))
                        '摘取KK音標
                        If InStr(.responseText, ">KK[") > 0 Then rng.Offset(0, 1) = "[" & Split(Split(.responseText, ">KK[")(1), "]")(0) & "]"
                        .Open "get", iurl2 & rng, False
                        .send
                        '從DICT.TW 英漢字典擷取字義
                        If InStr(.responseText, "</span><br /> &nbsp;") > 0 Then rng.Offset(0, 3) = Split(Split(.responseText, "</span><br /> &nbsp;")(1), "<")(0)
                    End With
             End If
    Next
End Sub
50 字節以內
不支持自定義 Discuz! 代碼

TOP

請問
我想要自己來試試看
這段程式碼要貼在EXCEL的哪裡才能使用呢?

TOP

        靜思自在 : 謊言像一朵盛開的鮮花,外表美麗,生命短暫。
返回列表 上一主題