2017-02-24 10 views
0

アクセステーブルを.csvにエクスポートするコードがあります。しかし、エクスポート後に列を自動フィッティングするつもりはありません。私は "オブジェクト変数またはWithブロック変数が設定されていません"を取得しています。CSVファイルvba自動フィラー

また、同じ手順でmulptiple 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 
関連する問題