2016-04-09 3 views
1

このスクリプトを使用してcsvファイルを開き、xlsファイルとして別のディレクトリに保存します。vbscriptを使用してExcelの一番上の行をフリーズする方法

もう1つの機能を追加したい - 上の行を自由にして、下にスクロールしても一定になるようにしたい。どうやってやるの?

Dim app, fso, file, fName, wb, dir 

dir = "D:\TA\" 

dirsave = "D:\TA\XLS" 

Set app = CreateObject("Excel.Application") 
Set fso = CreateObject("Scripting.FileSystemObject") 

For Each file In fso.GetFolder(dir).Files 
    If LCase(fso.GetExtensionName(file)) = "csv" Then 
    fName = fso.GetBaseName(file) 

    Set wb = app.Workbooks.Open(file) 
    app.Application.Visible = True 
    app.Application.DisplayAlerts = False 
    app.ActiveWorkbook.SaveAs dirsave & "\" & fName & ".xls", 56 
    app.ActiveWorkbook.Close 
    app.Application.DisplayAlerts = True 
    app.Application.Quit 

    End if 
Next 

答えて

1

このanswer

Rows("1:1").Select 
ActiveWindow.FreezePanes = True 
1

があなたの現在のコードは、1つの以上のファイルのために働くことはできません試してみてください。

この場合、アプリケーションはアプリと同じです。アプリを使うだけです。

表示と表示は、forループの前に1回行うことができます。

app.activeworkbookの代わりに、変数wbを使用します。

名前を付けて保存する直前に、2行のprovided by Stephenを使用します。最初の行の先頭にwb.worksheets(1)、2番目に「app」を付けます。

xlsの代わりにxlsxとして保存することを検討してください。

displayalertsとapp.quitのリセットはforループの後に行う必要があります。