Re: [問題] EXCEL VBA 檔案開啟 讀取問題

看板Office作者 (windknife18)時間14年前 (2011/11/08 18:06), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
沒有最佳化, 只能解你的資料狀況, 看看是否可行囉 .... Option Explicit Sub read() Dim aArray() As String Dim infile As String Dim i, j As Integer Dim data As String Application.ScreenUpdating = False infile = "J:\data\M9712001" Open infile For Input As #1 '過濾前兩行 Input #1, data Input #1, data j = 1 Do While Not EOF(1) '讀所有資料 Input #1, data aArray = Split(data, " ", 10, vbTextCompare) For i = LBound(aArray) To UBound(aArray) Cells(j, i + 1).Value = aArray(i) Next i j = j + 1 Loop Close #1 Range(Cells(1, 3), Cells(j, 4)).Cut Cells(j, 1) Range(Cells(1, 5), Cells(j, 6)).Cut Cells(2 * j - 1, 1) Application.ScreenUpdating = True End Sub ※ 引述《liwei0321 (橘子檸檬汽水)》之銘言: : 版本: Excel 2010 VBA : 我有一文字檔資料如下 : ------輸入檔------- : xx yy zz pp xx zz : A1 A2 G1 G2 M1 M2 : B1 B2 H1 H2 N1 N2 : C1 C2 I1 I2 O1 O2 : D1 D2 J1 J2 P1 P2 : E1 E2 K1 K2 Q1 Q2 : F1 F2 L1 L2 : 第一行是說明 第二行是空白,皆不需要(A1~Q2 xx~zz都是數字 數字間距是四個空格) : 想要改成下面的方式出現在EXCEL內 : A1 A2 : B1 B2 : C1 C2 : D1 D2 : : : : : : : Q1 Q2 : 目前寫的程式如下 但是仍跑不出我想要的結果 : 想請問版上各位高手指點迷津 感激不盡 : Sub read() : infile = "J:\data\M9712001" : Open infile For Input As #1 : For XD = 1 To 500 : For YD = 2 To 3 : Input #1, data : If data = "" Then : XD = XD - 1 : Else : Cells(XD, YD) = data : End If : Next YD : Next XD : Close #1 : End Sub : 上述程式有幾個問題 : 1. 無法把第一行 xx yy zz pp xx zz去掉 : 2. 讀入的數字前面會出現$的符號 : 3. 我用open讀入後,是一列一列讀入( A1 A2 G1 G2 M1 M2),所以排列起來會變成 : A1 A2 : G1 G2 : M1 M2 : : : : 請教版上高手提供一點方向,好讓我可以順利修正! : 謝謝!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.131.84.79

11/10 22:46, , 1F
非常感謝!! 來測試一下
11/10 22:46, 1F
文章代碼(AID): #1EkFyh3v (Office)
討論串 (同標題文章)
文章代碼(AID): #1EkFyh3v (Office)