【问题标题】:Delete Certain Range of Content on Excel Using Script Task on SSIS使用 SSIS 上的脚本任务删除 Excel 上的某些内容范围
【发布时间】:2018-03-21 16:56:02
【问题描述】:

我正在尝试使用 SSIS 上的脚本任务删除 Excel 上的一些内容范围(A2:BC2000),或者你们是否提供了任何替代方法。 这是我使用的代码

Public Sub Main()
        Dim Wexcel As Microsoft.Office.Interop.Excel.Application = New Microsoft.Office.Interop.Excel.Application()
        Dim Wb As Workbook = Wexcel.Workbooks.Open("C:\Users\Shawn\Documents\Depart.xlsx")
        Dim wf As WorksheetFunction = Wexcel.WorksheetFunction
        Dim sheet As Worksheet

        For Each sheet In Wexcel.Worksheets
            If wf.CountA(sheet.Range("A2:BC20000").Value) > 0 Then
                Wexcel.DisplayAlerts = False
                sheet.Delete()
                Wexcel.DisplayAlerts = True


            End If
        Next sheet
        Dts.TaskResult = ScriptResults.Success
    End Sub

如果我用这个脚本任务运行我的包,我会在下面收到一个错误

谁能解决这个问题?

【问题讨论】:

  • 只是一个建议 - 您的脚本是否有可能尝试删除所有工作表? - 这将导致错误,因为必须至少剩下一个。
  • 你的权利!!这是我的错,我只是删除了所有的床单。谢谢你的帮助!!!

标签: excel ssis script-task vba


【解决方案1】:

我正在尝试删除某些范围(A2:BC2000) 的内容

在您的代码中,您有以下几行:

 Wexcel.DisplayAlerts = False
sheet.Delete()
Wexcel.DisplayAlerts = True

这 3 行删除工作表,而不是范围。

如果你只想清除指定范围的内容,那么使用:

sheet.Range("A2:BC2000").ClearContents

希望对你有帮助

【讨论】:

  • 绝对正确!!!!太棒了,成功了!!!!!!谢谢你的帮助!!
猜你喜欢
  • 2015-05-03
  • 1970-01-01
  • 1970-01-01
  • 2012-04-05
  • 2017-07-26
  • 2020-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多