我使用此脚本打开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
答案 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循环之后。