iT邦幫忙

0

VBA 定時讀取資料並做類似vlookup功能

  • 分享至 

  • xImage

利用VBA每隔一段時間去網芳撈取資料並且顯示在Sheet1,然後Sheet2有一張對照表,excel必須根據sheet2去找sheet1中有無符合者並顯示在sheet3
舉例: Sheet2有 apple、book、cook、desk、enter、food.....等字眼
Sheet1只要符合任一個就要顯示在Sheet3
另外Sheet1的資料型態為 120808 16:24:33 U iamtheappleofyoureye
以時間為區分,行數不一定但是每段資料前面一定會有時間標記,請問可以將這種資料以時間標記分行嗎?

看更多先前的討論...收起先前的討論...
蟹老闆 iT邦大師 1 級 ‧ 2012-08-08 18:13:35 檢舉
你的資料來源是什麼?
xpresso iT邦新手 5 級 ‧ 2012-08-09 01:49:51 檢舉
資料來源是網路芳鄰裡的一個資料夾,裡面的一個檔案會不斷產生新資料,excel需要隔一定的時間讀取此檔案
slime iT邦大師 1 級 ‧ 2012-08-09 02:31:02 檢舉
乍看之下是抓取封包或軟體的訊息存檔, 然後要分析是否有外洩辦公室關鍵字....
xpresso iT邦新手 5 級 ‧ 2012-09-25 00:05:26 檢舉
請問如果我要vlookup的關鍵字不只一個,例如有十幾個左右
也可以做搜尋嗎?
蟹老闆 iT邦大師 1 級 ‧ 2012-09-25 04:22:18 檢舉
請參考 內有說明下載
忘了追蹤這個問題了哈哈
蟹老闆 iT邦大師 1 級 ‧ 2012-09-25 04:25:39 檢舉
測試的文件編碼為ANSI其它編碼未測試,結果未知
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
slime
iT邦大師 1 級 ‧ 2012-08-09 02:47:22
最佳解答

xpresso提到:
另外Sheet1的資料型態為 120808 16:24:33 U iamtheappleofyoureye
以時間為區分,行數不一定但是每段資料前面一定會有時間標記,請問可以將這種資料以時間標記分行嗎?

  1. 可以先依 Sheet1 抓取到的資料, 如果有規則, 可以這樣建立:
    b1=left(a1,6) (日期)
    c1=mid(a1,8,8) (時間)
    d1=mid(a1,17,1) (使用者)
    e1=right(a1,len(a1)-18) (使用者)

  2. sheet2 用 search 去找關鍵字, 並對找到的關鍵字記錄:
    例如: b1="研發"
    b2=if(iserror(search(b1,sheet1!e1)),"0","1") (如果有發現該字, 就顯示1, 否則顯示0

  3. 把最後有找到關鍵字的部份加總, 如果大於 0 就表示有出現關鍵字了, 再挑出來.

參考樣本:
https://docs.google.com/spreadsheet/pub?key=0Ar10y-TeUk90dHczRXpuVVQ0WXZYZzJUUVFidWJKZ3c&output=xls

看更多先前的回應...收起先前的回應...
slime iT邦大師 1 級 ‧ 2012-08-09 02:50:51 檢舉

不過這只是技術, 重要的是應用在什麼方面, 比如是 MSN 監控, 已經有很多現成軟硬體成品, 建議考慮找現成產品使用即可.

xpresso iT邦新手 5 級 ‧ 2012-08-09 16:13:16 檢舉

不是,完全跟監控MSN無關~~另可否設定每隔一定時間去讀取呢?
電腦無法安裝任何其他軟體,所以安裝軟體一途是沒有用的

slime iT邦大師 1 級 ‧ 2012-08-09 22:22:54 檢舉

VBA 有這種用法 Application.OnTime Now + TimeValue
但還是建議說明一下資料來源是什麼? 是否一定要用 Excel ?
如果電腦無法安裝其他軟體, Windows 也提供了 find / findstr 兩個指令, 搭配 at 也可以定期執行.

xpresso iT邦新手 5 級 ‧ 2012-08-10 01:43:55 檢舉

資料來源為多個網路硬碟中資料夾的檔案,該資料夾內檔案會以日期作為檔名並且不斷產生資料,例如 X:/ithd/machinea/20120809.log
Y:/ithd/machineb/20120809.log
Z:/ithd/machinec/20120809.log
希望以Excel定時去讀取此三個甚至更多的log檔,並且依照對照表去搜尋符合的資料段落,log檔內的資料以時間做區隔,如 0809 01:41:8609 Y machineb data1
(下一斷資料開始一定是以時間開頭) 0809 01:59:5862 N machineb data2
所以當判斷data1字串裡有符合的字出現時可以自動抓取整段資料並存到另一個Sheet裡

我要發表回答

立即登入回答