|
みなさん、明けましておめでとうございます。
下記のプログラムは「りんさん」が過去に作成された
プログラムですが、これを利用したいのです・・・・すいません
テキストファイルをSheet1に5デ−タ目から3000個
その後3000個づつB列からC列へと読み込みたいのですが
どうすれば良いでしょうか?(だいたい150列位のなると思いますが)
但し2行目から3002行目の間に読み込みたいのです
1行目と3003行目からは関数がありますから
テキストファイルの1デ−タ〜5デ−タ目は不要な
デ−タです。
Sub test()
Application.ScreenUpdating = False
Dim tf As Boolean
Ifile = Application.GetOpenFilename("csv ファイル (*.csv), *.csv")
If Ifile <> False Then
'3000Rec毎に分割する
Rmax& = 3000
'開始
tf = False: II& = 0: Nmax% = 0
Open Ifile For Input As #1
Do Until EOF(1)
II& = II& + 1: Line Input #1, A$
If II& Mod Rmax& = 1 Then
Nmax% = Nmax% + 1
cfile$ = "Page_" + Format(Nmax%, "000") + ".csv"
Open cfile$ For Output As #2
Application.StatusBar = "分割中! " + cfile$
tf = True
End If
'
Print #2, A$
'
If II& Mod Rmax& = 0 Then
Close #2: tf = False
End If
Loop
Close #1
If tf = True Then Close #2: tf = False
'
'ブックに読み込む
Dim wb1 As Workbook, wb2 As Workbook
For NN% = 1 To Nmax%
cfile$ = "Page_" + Format(NN%, "000") + ".csv"
Application.StatusBar = "読み込み " + cfile$
Set wb2 = Workbooks.Open(cfile$, Format:=2)
If NN% = 1 Then
wb2.Worksheets(1).Copy
Set wb1 = ActiveWorkbook
Else
With wb2
.Worksheets(1).Copy after:=wb1.Worksheets(NN% - 1)
End With
End If
wb2.Saved = True
wb2.Close
Kill cfile$
Next
wb1.Saved = True
Set wb1 = Nothing: Set wb2 = Nothing
Else
MsgBox "キャンセル", vbCritical
End If
Application.ScreenUpdating = True
Application.StatusBar = False
End Sub
|
|