2017-02-24 25 views
0

我有將Access表導出爲.csv的代碼。但是,我並不試圖在導出後自動填充列。我得到一個「對象變量或塊變量未設置」。自動調整列CSV文件vba

也有可能在同一個程序中打開多個csv文件和自動調整?

下面是代碼,我感謝您可以給予的任何幫助。

Function AutoFits() 

Dim ObjFSO As Object 
Dim ws As Worksheet 

Set ObjFSO = CreateObject("scripting.filesystemobject") 
     ObjFSO.Opentextfile "C:\filename.csv" 
     With ObjFSO 

     ws("sheet1").Select 

      .Columns("A:O").Select 
      .Selection.Columns.AutoFit 
      .activeworkbook.Save 

     End With 

     ObjFSO.Quit 
     Set ObjFSO = Nothing 

End Function 
+0

你有了說法指的是腳本對象和你想對這個對象上設置的基於紙張性能。因此錯誤 – Aeneas

回答

0

這下面應該工作。請注意,如果您保存爲CSV文件,則無法保留任何格式(包括列寬),因此您需要保存xls文件。

Sub AutoFits() 

    Application.Workbooks.Open "C:\filename.csv" 

    ActiveSheet.Columns("A:O").Select 

    Selection.EntireColumn.AutoFit 

    ActiveWorkbook.SaveAs "C:\filename.xls" 

End Sub 

,並通過目錄中的所有CSV文件中環...

Function AutoFitsAllFiles() 
    Dim file As String 

    file = Dir("c:\*.csv") 

    While (file <> "") 
    Application.Workbooks.Open "c:\" & file 

    ActiveSheet.Columns("A:O").Select 

    Selection.EntireColumn.AutoFit 

    ActiveWorkbook.SaveAs "c:\" & Left(file, Len(file) - 3) & "xls" 

    ActiveWorkbook.Close False 

    file = Dir 
    Wend 


End Function