Re: [問題] EXCEL VBA 檔案開啟 讀取問題
沒有最佳化, 只能解你的資料狀況, 看看是否可行囉 ....
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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Office 近期熱門文章
PTT數位生活區 即時熱門文章