当 SSRS 报告导出到 Excel 时,我可以使用 VBScript 挖掘任何事件吗?

Are there any events I can tap into with VBScript for an SSRS report when it is exported to Excel?

我已经尝试了我能想到的一切,以及其他人的建议,如 here 所见,以在报告将 SSRS 报告导出到 Excel 时指定 sheet 名称亚军。到目前为止没有任何效果。

有没有我可以利用并为其编写代码 (VBScript) 的事件?可以使用 VBScript 分配或调整数据值,但是在 SSRS 中,有没有办法为某些事件(例如 "OnGenerate" 等)编写代码?

我从未使用过 SSRS,所以不知道它是如何导出的。 但是,您可以尝试设置应用程序 new_Workbook 事件以捕获任何打开的新工作簿并检查它是否 clue/feature 它是 SSRS 报告工具的产品。

例如。您可以检查工作簿名称(如果有明确的迹象表明它是 tool.If 的产物,您在导出时保存为 "mySSRS_Report20160628.xlsx" 之类的内容,那么您可以检查 "mySSRS_" 字符串。

为此,您必须让 'pagename' 始终出现在生成的工作表的同一单元格中,例如我的示例中的 $A$2。

您将需要一个加载项,因此打开一个全新的工作簿并创建一个名为 cAppEvents 的新 class 模块并将其放入其中:

Option Explicit
Private WithEvents app As Application

Private Sub app_WorkbookOpen(ByVal Wb As Workbook)
  Dim i As Long
  If InStr(1, Wb.Name, "mySSRS_", vbTextCompare) Then
        For i = 1 To Wb.Worksheets.Count
              Wb.Worksheets(i).Name = Wb.Worksheets(i).Range("A2").Value
        Next i
        Wb.Save
  End If
End Sub

Private Sub Class_Initialize()
  Set app = Application
End Sub

在该工作簿的 ThisWorkbook 模块中将此代码放入:

Private newApp As cAppEvents

Private Sub Workbook_Open()
  Set newApp = New cAppEvents
End Sub    

将其另存为 Excel 加载项。转到文件-->选项-->插件来管理你的插件,然后选中文件名

的框

通过打开名称中包含字符串 "mySSRS_" 并在单元格 $A$2 中包含一些相关数据的工作簿进行测试。 你明白了....