如何使用vbscript冻结excel中的顶行

时间:2016-04-09 02:04:21

标签: excel vba vbscript

我使用此脚本打开csv文件并将其作为xls文件保存在另一个目录中。

我还想添加一个功能 - 我想释放顶行,这样当我向下滚动时它保持不变。我怎么能这样做?

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

2 个答案:

答案 0 :(得分:1)

试试这个answer

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

答案 1 :(得分:1)

您当前的代码无法使用多个文件。

在这种情况下,App.application与app相同;只需使用app。

可见和显示区可以在for循环之前完成一次。

使用变量wb。

而不是app.activeworkbook

在保存之前,使用两行provided by Stephen;使用wb.worksheets(1)作为第一行的前缀,使用" app。"作为第二行的前缀。

考虑保存为xlsx而不是xls。

重置displayalerts和app.quit应该在for循环之后。