【问题标题】:Late bound resolution using COM objet for Excel使用 Excel 的 COM 对象的后期绑定分辨率
【发布时间】:2013-07-05 08:06:31
【问题描述】:

以下是使用 VB.net 的 SSIS 脚本任务中

我已经阅读了一些关于这个错误的信息,并且这行似乎有问题: 工作表 = CType(workbook.Sheets(4), Excel.Worksheet)

我的代码如下。我认为对于这里有经验的人来说会很简单。

文本:

Public Sub Main()
       Dim excel As New Excel.Application
        Dim filename As String = "S:\UK\Clients\Direct\xxxxxxx.xls"

    excel.Visible = True
    excel.DisplayAlerts = False

    Dim workbook As Excel.Workbook
    workbook = excel.Workbooks.Open(filename, , False) 'True = ReadOnly

    Dim worksheet As Excel.Worksheet
    worksheet = CType(workbook.Sheets(4), Excel.Worksheet)


    worksheet.Rows(1).delete()








    Dts.TaskResult = ScriptResults.Success
End Sub

【问题讨论】:

    标签: vb.net ssis


    【解决方案1】:

    在代码顶部添加Option Strict Off,这将允许后期绑定。

    要了解早期绑定和后期绑定,请参阅 here

    你可以替换这个语句

    worksheet.Rows(1).delete()
    

    Dim rw As Excel.Range
    rw = CType(worksheet.Rows(1), Excel.Range)
    rw.Delete()
    

    并在顶部设置 Option Strict On

    您的所有代码都将被提前绑定。希望这会有所帮助

    【讨论】:

    • 这似乎创造了奇迹。花了很长时间才得到一个答案。这会对我的代码产生负面影响吗?
    • 对性能的影响相对来说会比较大,并且由于许多原因,早期绑定优先于后期绑定。参考msdn.microsoft.com/en-us/library/0tcf61s1(v=vs.80).aspx
    猜你喜欢
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-23
    • 2010-10-21
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多