2017-02-09 22 views
0

SSISでVBAスクリプトを実行しようとしていますが、これはExcelファイルを開き、1997-2003 Excelファイルとして保存しますが、実行するたびにランタイムエラーが発生します。 12を、私はこれを作ってみた:私は私のスクリプトのためにこれらの2つの答えの組み合わせを使用してきたSSISでVBAスクリプトを使用するとランタイムエラーが発生する

スクリプト

Public Sub Main() 
    Dim oExcel As Excel.Application = Nothing 
    Dim oBooks As Excel.Workbooks = Nothing 
    Dim oBook As Excel.Workbook = Nothing 
    ' 
    oExcel = CreateObject("Excel.Application") 
    oExcel.Visible = False 
    oBooks = oExcel.Workbooks 
    oBook = oBooks.Open(Dts.Variables("Filename.xls").Value.ToString()) 
    oBook.SaveAs("Filename.xls") 
    oExcel.Quit 

    Dts.TaskResult = ScriptResults.Success 
End Sub 

を私は両方のMicrosoft Excel 16.0 Object Libraryへの参照を持っているし、誰も助けることができるC#?

これは私が取得していますエラーです:

DTSスクリプトタスク:ランタイムエラーを

例外が呼び出しのターゲットによってスローされました。

at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 
    at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) 
    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 
    at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams) 
    at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript() 
+0

どのようなエラーが表示されますか? –

+0

@EricBurdo編集済み投稿を – JamesBracky

+0

SaveAsメソッドを投稿できますか?またはファイルを 'oExcel.Run(" SaveAs ")で保存しますか? – Shmukko

答えて

0

これは私が使い終わったものです。 Excelでファイルを開き、Unicodeテキスト形式で保存します。また、「Interop Typeを埋め込む」をFalseに設定してください。

Public Sub Main() 

    Dim oMissing As Object = System.Reflection.Missing.Value 
    Dim xl As New Microsoft.Office.Interop.Excel.ApplicationClass() 
    Dim xlBook As Microsoft.Office.Interop.Excel.Workbook 
    Dim xlSheet As Microsoft.Office.Interop.Excel.Worksheet 
    Dim laPath As String = "C:\Filename.xls" 
    xlBook = DirectCast(xl.Workbooks.Open(laPath, oMissing, oMissing, oMissing, oMissing, oMissing, 
    oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, 
    oMissing, oMissing, oMissing), Workbook) 

    xlSheet = DirectCast(xlBook.Worksheets.Item(1), Worksheet) 
    xlBook.SaveAs("C:\Filename.txt", XlFileFormat.xlUnicodeText, oMissing, oMissing, oMissing, oMissing,, oMissing, oMissing, oMissing, oMissing, oMissing) 
    xl.Application.Workbooks.Close() 
    Dts.TaskResult = ScriptResults.Success 
End Sub 
関連する問題