【问题标题】:SSIS export to Excel template - VLOOKUPSSIS 导出到 Excel 模板 - VLOOKUP
【发布时间】:2017-01-20 19:48:13
【问题描述】:

客户有一个必须使用的精确模板。由于格式的原因,我无法通过 SSIS 将数据直接插入到模板中。

想法: 按计划运行 SSIS。它复制模板并填充信息。

我在同一个工作簿中使用了“参考”表来推送所有必要的数据,因为我无法将其直接放入所需的模板中。

“参考”表的 VLOOKUP 用于正确设置模板中的数据。

问题: VLOOKUP 不会自动刷新数据。当我打开工作簿时,值是相同的。如果我更改引用表中的单元格,VLOOKUP 中的数据会更新。

解决方案:我需要的是一种在 SSIS 中设置数据的方法,并在打开 Excel 工作簿时让 VLOOKUP 自动重新检查数据。

【问题讨论】:

    标签: excel vba ssis


    【解决方案1】:

    已解决 我已经解决了以下问题

    问题 如果不手动打开/更改受影响的单元格,VLOOKUP 将不会在打开时更新

    =VLOOKUP(A1,Reference!$A2:$B6, 2, FALSE)
    

    找到解决方案 有点破解,但在参考工作表中:

    1. 在模板中添加了“格式”行
    2. 在 VLOOKUP 参考列 (Reference!$A2) 的“格式”行中放置一个将被更新的公式(例如“=TODAY()”)

    现在,只要打开工作簿,Reference!$A$2 就会更新为今天的日期。这会触发模板中的 VLOOKUP 更新,因为引用列中的值已更改。完整的流程是:

    1. Template.xlsx(2 张:TemplateResults 和 Reference)
    2. SSIS - 为当前运行复制 Template.xlsx
    3. SSIS - 在 Template.xlsx 中提取数据和位置 - 参考
    4. 打开 CopiedTemplate.xlsx:参考!$A$2 将自身更新为当前日期。触发 TemplateResults 中的 VLOOKUP 进行自我更新

    【讨论】:

    • vba 宏... 如果数据只需要在首次打开时检查/更新,而不是每次打开时都需要检查/更新,则很有用。我使用的宏如下。与上面的 =TODAY() 工作方式相同,但只会更新一次值。 (见下文)
    • Private Sub Workbook_Open() Dim dataSheet As Sheet2 Dim dateCell As Range Dim firstValueCell As Range Dim sMyString As String Set dataSheet = Worksheets("Reference") Set dateCell = dataSheet.Range("B2") Set firstValueCell = dataSheet.Range("A3") If dateCell = "WAIT" And firstValueCell <> "" Then dateCell.Value = "HOLD" End If End Sub
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多