1樓:復仇之牙
19:44開始解答這個問題,那時你還沒有上傳附件,試試能不能用吧
sub 批量提取txt檔案指定位置資料()
dim fso as object, ofile as object
dim tx, tx0, txk as string
dim r1, r2 as integer
r1 = 2 '從第2行開始寫入
'將需寫入資料的列轉換為文字格式,防止0開頭的數字資料寫入錯誤
[a:a].numberformatlocal = "@"
[c:c].numberformatlocal = "@"
[e:e].numberformatlocal = "@"
[g:g].numberformatlocal = "@"
[k:k].numberformatlocal = "@"
set fso = createobject("scripting.filesystemobject") '引用fso物件
for each ofile in fso.getfolder(thisworkbook.path & "\資料來源\").files '遍歷當前工作簿路徑下的資料來源資料夾內所有檔案
if ofile.name like "*.txt" then '如果拓展名為txt
r2 = 1
open ofile for input as #1 '讀取檔案
do while not eof(1) '遍歷行至檔案尾
line input #1, tx '輸出行為字串
if len(trim(tx)) > 0 then '如果非空個字元大於0
if r2 = 1 then
cells(r1, "a").value = mid(tx, 2, 2) '第一行的第2-3個字元放到a列
txk = mid(tx, 2, 2) 'txk用於取k列資料
end if
if r2 = 2 then
cells(r1, "c").value = left(right(tx, 7), 3) '第二行從右往左取7個字元,再取前3個,放到c列
txk = txk & left(right(tx, 7), 3) 'txk用於取k列資料
end if
if r2 = 3 then cells(r1, "e").value = mid(tx, worksheetfunction.find("abcdef", tx) + 8, 4) '第三行找到abcdef的起始位置,從a向後數8個字元開始取,取4個
if left(tx, 6) = "hijklm" then cells(r1, "g").value = left(right(tx0, 6), 4) '某一行是hijklm開頭的,該行的上一行資料從右往左取6個字元,再取前4個,放到g列
if left(tx, len(txk)) = txk then cells(r1, "k").value = mid(tx, 6, 6) '某一行是提取之後的a2&c2中的資料開頭的,第6-11個字元放到k2單元格
tx0 = tx '將此行字元存入臨時變數作為上一行
end if
r2 = r2 + 1
loop
close #1
end if
r1 = r1 + 1
next ofile
set fso = nothing
end sub
gif**
要提取的txt檔案的截圖
2樓:匿名使用者
這東西只有拿到實際檔案,分析資料,才能編寫**正確取到需要的資料,光描述是說不清楚的。
如何通過excel邊寫vba批量提取指定資料夾下所有*.txt檔案中指定行列的資料並寫入指定sheet中的指定單元格
3樓:匿名使用者
提供具體要求可以 收費處理 [email protected]
4樓:銷香葉雨
建議上傳一些測試資料
把你的要求簡要說明白
5樓:匿名使用者
沒有財富怎麼幫你。。。
6樓:
發檔案來才能寫**的
excel用vba巨集中用for迴圈將一列滿足條件的後面加上需要的數值比如
直接寫個公式就可以了。假如你那個1在的列是b,在c裡寫公式if b1 1,a 空 然後填充就可以了。如果一定要用vba,那就讀出來單元格的內容,然後根據內容填充就可以了。 姓王的 sub aaa for i 1 to range a65536 end xlup row if cells i,1 張 ...
excel如何自動提取銷售量最大的前10名人員名單?難點是有銷售量相同的
用large if啊 假設上面四列資料分別在abcd列,且銷售額為數值 沒有單位的 那麼在e2輸入 if b2 large 銷售額資料區記得加 絕對引用,10 a2,下拖填充就行了,然後將e列複製,選擇性貼上,排序,就得到前10的姓名 按照銷售額排序不就完了 excel怎樣從100名中篩選出前10名...
EXCEL用掃瞄槍如何自動換行,EXCEL用掃瞄槍如何自動換行
1 首先我們需要開啟excel 2 如圖,可以看到 資料預設是不換行的,這樣資料就會超出單元格範圍。這一點很重要。3 接著我們選中要換行的單元格,然後點選開始選單下的 自動換行 按鈕。4 這樣,當資料超出單元格範圍的時候,就會自動換行,不會超出了。方法很簡單。你這個兩列單元格跳動估計比較難實現,我想...