如何用EXCEL VBA讀入固定格式的

時間 2021-06-26 11:18:33

1樓:橫山先生

參考下:

sub readfile()

dim ddate as date

dim scustomer as string

dim sproduct as string

dim dprice as double

dim sfname as string

dim ifnumber as integer 'file number

dim lrow as long 'row number in worksheet

sfname = "c:\vba_prog_ref\chapter12\jansales.txt"

'獲得未被使用的檔案號

ifnumber = freefile

'開啟檔案準備輸入

open sfname for input as #ifnumber

sheet2.cells.clear ‘清除**內容

lrow = 2

do'從txt 檔案讀取內容到excel

input #ifnumber, ddate, scustomer, sproduct, dprice

with sheet2

.cells(lrow, 1) = ddate

.cells(lrow, 2) = scustomer

.cells(lrow, 3) = sproduct

.cells(lrow, 4) = dprice

end with

'移動到下一行

lrow = lrow + 1

'讀取檔案,直到檔案結尾

loop until eof(ifnumber)

'關閉檔案

close #ifnumber

end sub

2樓:匿名使用者

可以錄製一段巨集,匯入一個文字檔案,會產生如上的**:

workbooks.opentext filename:=thisworkbook.path & "\" & stemp, origin _

:=936, startrow:=1, datatype:=xlfixedwidth, fieldinfo:=array( _

array(0, 2), array(22, 2), array(39, 2), array(50, 2), array(51, 2), array(52, 2), array(60 _

, 2), array(80, 2), array(92, 2), array(143, 2), array(149, 2), array(157, 2), array(216, 2) _

, array(222, 2), array(225, 2), array(254, 2), array(255, 2), array(263, 2)), _

trailingminusnumbers:=true

然後用如下語句去迴圈匯入所有的文字檔案,匯入後可以再用其它控制語句去處理:

set fso = new filesystemobject

set afolder = fso.getfolder(thisworkbook.path)

for each afile in afolder.files

... ...

... ...

next

excel vba 讀取 固定格式的txt文字,輸入指定格式的**裡。 50

3樓:匿名使用者

sub query()

dim filename, inputstring as string, doc

filename = worksheets(2).range("b2").value'檔案儲存路徑

if createobject("scripting.filesystemobject").fileexists(filename) = true then

'判斷檔案是否存在

open filename for input access read as #1

'若存在則開啟tet檔案,名為#1

do while not eof(1)

line input #1, inputstring

'讀取tet檔案每行資料

doc = inputstring

'將每行資料賦值給doc

loop

close #1'關閉檔案

kill filename'刪除檔案

end if

end sub

高分求用vba將excel**資料 匯出固定格式的txt檔案。

4樓:匿名使用者

你可能沒明白樓上的意思,你建一列==if(book2!a1="北京","bj|")&if(book2!c1="神州行","shengzhouxing|")&book2!

d1&book2!e1,讓後一拖,拷貝一行,貼上就可以了。

另外是不是深圳需要改為sz那?家園卡需要改為jiayuanka?

5樓:匿名使用者

這個用不著動用vba,

直接在excel裡面處理後複製貼上在txt裡面就可以了。

不用一個一個的複製,可以用公式的。

excel中vba怎麼獲取一個txt檔案的固定行資料?

6樓:匿名使用者

剛才試了一下,你說的這種型別的txt好像可以直接用excel開啟,所以我錄了個巨集,改了一下

你可內以試試:

sub 提取()

set zsht = activesheet

workbooks.opentext filename:="d:\abc.txt"

set mytxt = activeworkbook

zsht.range("a1:d10").value = activesheet.range("a1:d10").value

mytxt.close

end sub

這個巨集是容要先開啟一個空**,然後執行這個巨集,會把txt當成**開啟,並a1:d10數值賦值給剛才開啟的空**

7樓:一箭驚仙

用正規表示式,按換行符分割,取出第10行

再將取出的第10行用正規表示式以不可見字元進行分割,就可以了

8樓:匿名使用者

用陣列啊,這麼多資料還用變數,out了

C語言,如何用迴圈讀入多個文字檔案

鏡蔓楊清雅 下面的 是剛剛給你寫好的,檔名僅限 a.txt b.txt 和 c.txt include stdio.h include stdlib.h intmain void fseek fp,0,2 filelen ftell fp fseek fp,0,0 p i malloc filele...

Excel VBA中如何使用split來分割內部含有不定空格的字串

yty隨意 1 首先開啟office excel軟體,接著開啟vba編輯介面。2 然後在單元格區域當中輸入一些內容。3 接著在vba編輯器中插入模組。4 在模組當中輸入如下 進行分割取線,然後執行。5 最後在單元格b2中輸入公式 division a1,column a a 然後右拉至d2,公式結果...

excel vba中如何定義陣列,並賦值

陽光上的橋 for each i in array 1,6,8,18,19,20,25,62,63,64 msgbox i i next i 表裡如一 dim i as integer,aaa 9 as integer aaa array sub a dim aaa 9 aaa 0 1 aaa 1 ...