返回列表 上一主題 發帖

用excel上網查音標 又掛了

回復 1# 自我感覺良好
17. Rng.Offset(0, 1) = Left(VBA.Split(.responseText, "KK</span>  ")(1), InStr(VBA.Split(.responseText, "KK</span>  ")(1), "]"))
刪除空格修改如下:
Rng.Offset(0, 1) = Left(VBA.Split(.responseText, "KK</span>")(1), InStr(VBA.Split(.responseText, "KK</span>")(1), "]"))

TOP

回復 11# HSIEN6001
  1. Option Explicit
  2. Sub Ex() 'Split在字串中以指定的字元作分割傳回一維陣列
  3.     Dim A As String, W, xi As Integer, i As Integer
  4.     A = "1ABCD2ABCD3ABCD4ABCD"
  5.     For xi = 2 To 6
  6.         W = Split(A, Mid(A, xi, 1))
  7.         For i = 0 To UBound(W)
  8.             Debug.Print W(i)     '在即時運算視窗可見
  9.         Next
  10.         MsgBox Join(W, ",")
  11.     Next
  12. End Sub
複製代碼
回復 12# c_c_lai
使用 VBA.Split 與 函數之 Split 實務應用上到底有何差異  一樣的後者只是省略的寫法

TOP

回復 16# c_c_lai
(For i = 0 To 4)                   <---   正確應為 For i = 0 To 3
' Split("1ABCD2ABCD3ABCD4ABCD",Mid(A,5,1)) -> 'D'  這裡並沒有套入 i  這變數
可以傳上你所說的錯誤 程式碼

回復 17# HSIEN6001
  1. Sub Ex()
  2.     Dim strURL As String, x As String
  3.     strURL = "http://mops.twse.com.tw/mops/web/ajax_t108sb27?step=1&firstin=ture&off=1&TYPEK=sii&co_id_1=&co_id_2=&year=" & _
  4.                 Year(Date) - 1911 & "&month=&b_date=&e_date=&type=1&rulesubmit2=%20%E6%90%9C%E5%B0%8B%20"
  5.         With CreateObject("Microsoft.XMLHTTP")
  6.             .Open "GET", strURL, 1
  7.            .send
  8.             Do While .ReadyState <> 4
  9.             Loop
  10.              x = Left(VBA.Split(.responseText, "filename' value='")(1), InStr(VBA.Split(.responseText, "<table class='noBorder")(1), "<"))
  11.            MsgBox x
  12.         End With
  13. End Sub
  14. Sub Ex_Split() 'Split(字串,分割字元)(1)--->這個(1)是?意思
  15.     Dim A As String, W, xi As Integer, i As Integer
  16.     A = "1ABCD2ABCD3ABCD4ABCD"
  17.     W = Split(A, "B")
  18.     For i = 0 To UBound(W)
  19.         MsgBox "W(" & i & ")  -> " & W(i)
  20.     Next
  21. End Sub
複製代碼

TOP

回復 23# c_c_lai
找不出你的錯誤
  1. Option Explicit
  2. Sub Ex() 'Split在字串中以指定的字元作分割傳回一維陣列
  3.     Dim A As String, W, xi As Integer, i As Integer
  4.     A = "1ABCD2ABCD3ABCD4ABCD"
  5.    ' (For 5 to 6)
  6.     For i = 0 To 4       '   <---   正確應為 For i = 0 To 3
  7.         W = Split("1ABCD2ABCD3ABCD4ABCD", Mid(A, 5, i)) ' '-> 'D'
  8.     MsgBox "分割字串 """ & Mid(A, 5, i) & """陣列上限維度 " & UBound(W) & " 最後一維字串: " & W(UBound(W)) '-> 1ABC,2ABC,3ABC,4ABC)
  9.     Next
  10. End Sub
複製代碼
回復 20# HSIEN6001
Split(字串,分割字元)(1)--->這個(1)是?意思
18#有示範的程式
  1. Sub Ex_Split() 'Split(字串,分割字元)(1)--->這個(1)是?意思
  2.     Dim A As String, W, xi As Integer, i As Integer
  3.     A = "1ABCD2ABCD3ABCD4ABCD"
  4.     W = Split(A, "B")
  5.     For i = 0 To UBound(W)
  6.         MsgBox "W(" & i & ")  -> " & W(i)
  7.     Next
  8. End Sub
複製代碼
壓縮檔內有兩個下載,一個是NG,一個OK
21#c_c_lai  不是說
第一次一定是 OK 的,因為在 D:\ 內 市.csv、櫃.csv 並不存在,按第二次時,
妳又再次使用 .SaveToFile (Apath & "市.csv") 以及 .SaveToFile (Apath & "櫃.csv")
所以就會出錯了。
  1. Sub Ex()
  2. Dim xml As New XMLHTTP
  3. Dim stream As New ADODB.stream
  4. Dim strURL As String
  5. Dim x As String, y As String
  6. Dim Apath As String, ApathFile As String
  7. Apath = "D:\"
  8. If Dir(Apath & "市.csv") <> "" Then Kill Apath & "市.csv"       '加上有則刪除的判斷
  9. If Dir(Apath & "櫃.csv") <> "" Then Kill Apath & "櫃.csv"
複製代碼

TOP

回復 25# HSIEN6001
我會努力消化
  1. Option Explicit
  2. Sub Ex_陣列() 'Split(字串,分割字元)(1)--->這個(1)是?意思
  3.     Dim A As String, W, xi As Integer, i As Integer
  4.     'A = "1ABCD2ABCD3ABCD4ABCD"
  5.     'W = Split(A, "B")
  6.     W = Array("A", "B", "C", "D")
  7.     For i = LBound(W) To UBound(W)
  8.         MsgBox "Array(""A"", ""B"", ""C"", ""D"")" & Chr(10) & "W(" & i & ")  -> " & W(i)
  9.     Next
  10. End Sub
複製代碼

TOP

回復 28# HSIEN6001
第(索引值)個分割   
LBound(W) ---> LBound 函数可以找到数组某一维的下限索引值。
UBound(W)---> UBound 函数可以找到数组某一维的上限索引值。
  1. Option Explicit
  2. Sub Ex()
  3.     Dim A(4 To 7), x As Integer
  4.     For x = LBound(A) To UBound(A)
  5.         A(x) = String(x, "A")
  6.     Next
  7.     MsgBox "LBound(A) =>下限索引值" & LBound(A) & Chr(10) & _
  8.     "UBound(A) =>上限索引值" & UBound(A) & Chr(10) & Join(A, "---")
  9. End Sub
複製代碼

TOP

本帖最後由 GBKEE 於 2012-7-17 17:14 編輯

回復 31# HSIEN6001
最小的索引值是----> 0 開始的長整數.  這不一定
例  Dim A(4 To 7)  ->   最小的索引值是 4 , 最大的索引值是7   
Option Base  0 或 1   可指定最小的索引值為 0 或 1
  1. Option Explicit
  2. Option Base 1
  3. 'Option Base 陳述式 在模組層次中用來宣告陣列索引的預設下限。語法 Option Base {0 | 1}
  4. Sub Ex_陣列()
  5. Dim A As String, W, xi As Integer, i As Integer
  6. W = Array("A", "B", "C", "D")
  7. MsgBox LBound(W)
  8. For i = LBound(W) To UBound(W)
  9. MsgBox "Array(""A"", ""B"", ""C"", ""D"")" & Chr(10) & "W(" & i & ") -> " & W(i)
  10. Next
  11. End Sub
複製代碼

TOP

        靜思自在 : 成功是優點的發揮,失敗是缺點的累積。
返回列表 上一主題