返回列表 上一主題 發帖

EXCEL抓取CSV資料並即時更新

EXCEL抓取CSV資料並即時更新

我的檔案內容如下 是CSV格式
tttt.rar (136 Bytes)
5個資訊 我用顏色顯示 比較容易讓各位大大了解我的意思
小型台指月   奇狐_試用   2013/12/26 12:17:00   8500   1   

我想要用一個EXCEL檔
將上面的5個資訊
分別載入至EXCEL的 A1-E1個別儲存格(1個儲值格塞1個資訊)
並會一直更新
也就是
只要CSV的資料有變動
EXCEL也會馬上跟著變動

要有上述此種功能 VBA語法要如何寫

回復 21# bqwangs
  1. Application.OnTime Time + #12:00:01 AM#, "工作表1.Ex"
  2. 15.    '程式在物件模組 OnTim 要指明 模組名稱 (工作表1 是物件模組)
複製代碼
  1. 'This Workbook是 (物件模組)
  2. Private Sub Workbook_Open()
  3. Ex
  4.         End Sub
  5. =============
  6. 'Module1裡放程式(Module1是一般模組)
  7. Sub Ex()   
  8.     Dim Ar As Variant, E As Range, i As Integer
  9.     'd:\  請修改為正確路徑
  10.     With GetObject("d:\tttt.csv").Sheets(1)
  11.         Ar = Split(Trim(.[a1]), Space(2))
  12.         .Parent.Close 0
  13.     End With
  14.     i = 0
  15.     For Each E In ActiveSheet.[A1,A2,B5,E5,C5]
  16.         E = Ar(i)
  17.         i = i + 1
  18.     Next
  19.     Application.OnTime Time + #12:00:01 AM#, "Ex"
  20.     '程式在物件模組 OnTim 要指明 模組名稱,(Module1是一般模組 OnTim可以不指明 模組名稱)
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

版大
我是程式大外行
1.上述的程式 是放到工作表1的VB裡
還是放到Module1嗎??
2.Application.OnTime Time + #12:00:01 AM#, "工作表1.Ex"
'程式在物件模組 OnTim 要指明 模組名稱
是要改成??
Application.OnTime Time + #12:00:01 AM#, "Module1.Ex"
3.我將程式放到工作表1的VB裡
還是要去 按巨集 再按執行
要如何變成一開檔案 就馬上會執行

=============
This Workbook裡
Private Sub Workbook_Open()
Ex
        End Sub
=============
Module1裡放程式
Sub Ex()
    Dim Ar As Variant, E As Range, i As Integer
    'd:\  請修改為正確路徑
    With GetObject("d:\tttt.csv").Sheets(1)
        Ar = Split(Trim(.[a1]), Space(2))
        .Parent.Close 0
    End With
    i = 0
    For Each E In ActiveSheet.[A1,A2,B5,E5,C5]
        E = Ar(i)
        i = i + 1
    Next
    Application.OnTime Time + #12:00:01 AM#, "工作表1.Ex"
    '程式在物件模組 OnTim 要指明 模組名稱
=====================
錯誤訊息

TOP

回復 19# bqwangs
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar As Variant, E As Range, i As Integer
  4.     'd:\  請修改為正確路徑
  5.     With GetObject("d:\tttt.csv").Sheets(1)
  6.         Ar = Split(Trim(.[a1]), Space(2))
  7.         .Parent.Close 0
  8.     End With
  9.     i = 0
  10.     For Each E In ActiveSheet.[A1,A2,B5,E5,C5]
  11.         E = Ar(i)
  12.         i = i + 1
  13.     Next
  14.     Application.OnTime Time + #12:00:01 AM#, "工作表1.Ex"
  15.     '程式在物件模組 OnTim 要指明 模組名稱

  16. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

版大
但我試著用 按巨集 再按執行
他會一直更新跟csv檔案一樣的資訊
有辦法改成 每秒 自動作  按巨集 再按執行1次嗎??

之前資料擷取儲值格位置是A1-E1
但如果我要改成A1 A2 B5 E5 C5
那又要如何改??

TOP

回復 17# bqwangs
你說 只要CSV檔變動 EXCEL儲存格資料 也跟著變動
用CSV檔無法更新連結
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 bqwangs 於 2014-1-8 11:14 編輯

回復 16# GBKEE

版大
我依您的方式
弄了一個檔
t1.rar (12.93 KB)

他開啟時 需去按巨集 再按執行
才會抓取資料
但要如何 讓檔案開啟時
即自動抓資料 也會一直更新(只要CSV檔變動 EXCEL儲存格資料 也跟著變動)
類似同步

之前資料擷取儲值格位置是A1-E1
但如果我要改成A1 A2 B5 E5 C5
那又要如何改??

TOP

回復 15# bqwangs
14# 的程式碼,可不開檔讀取資料,2003可正常執行.

另幕後開檔讀取資料,可參考
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar
  4.     'd:\  請修改為正確路徑
  5.     With GetObject("d:\tttt.csv").Sheets(1)
  6.         Ar = Split(Trim(.[a1]), Space(2))
  7.         .Parent.Close 0
  8.     End With
  9.     With ActiveSheet.[a1:e1]
  10.         .Value = Ar
  11.         .Value = .Value
  12.     End With
  13. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

本帖最後由 bqwangs 於 2014-1-7 20:41 編輯

超級版主
我的版本是2010的
我試了
不行
是我不會弄
可以幫忙做一個檔案嗎
供我下載

TOP

回復 12# bqwangs
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Ar
  4.     Ar = ExecuteExcel4Macro("'d:\[tttt.csv]tttt'!R1C1")
  5.     'd:\  請修改為正確路徑
  6.     Ar = Split(Trim(Ar), Space(2))
  7.     With ActiveSheet.[a1:e1]
  8.         .Value = Ar
  9.         .Value = .Value
  10.     End With
  11. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 人生最大的成就是從失敗中站起來。
返回列表 上一主題