【问题标题】:Add macro code to a worksheet through a module通过模块将宏代码添加到工作表
【发布时间】:2016-10-30 17:52:22
【问题描述】:

我目前创建了一个宏,它需要大量数据(每周从数据库中提取)并将其显示在多个不同的数据透视表中。我还在工作簿的开头有一个摘要页面,列出了不同的客户和机器名称。目前,我编写了一个宏,以便我可以单击其中一个客户名称,并通过 Worksheet_SelectionChange 事件打开与该客户对应的工作表。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If SheetExists(Right(Replace(Replace(ActiveCell.Value, "/", "-"), "'", ""), 31)) Then
        ActiveWorkbook.Sheets(Right(Replace(Replace(ActiveCell.Value, "/", "-"), "'", ""), 31)).Activate
    End If
End Sub

Function SheetExists(SheetName As String, Optional wb As Excel.Workbook)
   Dim s As Excel.Worksheet
   If wb Is Nothing Then Set wb = ThisWorkbook
   On Error Resume Next
   Set s = wb.Sheets(SheetName)
   On Error GoTo 0
   SheetExists = Not s Is Nothing
End Function

很遗憾,由于工作的性质,我不能分享太多代码本身。

我的问题在于下周重新生成报告时:是否可以让生成详细工作表的宏和摘要将 SelectionChange 代码添加到新摘要中?谢谢!

【问题讨论】:

  • 使用插件或模板
  • 您的数据是什么样的?你能显示你的宏的代码吗?
  • 用事件代码更新了,很遗憾我不能显示很多生成宏
  • 而且我一直认为数据是机密的,而不是你正在编写的 VBA 代码。无论如何,根本问题是您正在寻找 VBA 代码来更改 VBA 代码。虽然这是可能的,但我只知道 VBA 代码可以更改模块中的 VBA 代码。但是,您想更改工作表上的代码。据我所知,这是不可能的。因此,最好的建议仍然是@Nathan_Sav 的建议:模板或插件。我通常在 SharePoint 网站上使用模板(空)(带有访问跟踪、版本控制等)。

标签: excel vba macros


【解决方案1】:

模板似乎是最好的选择

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2014-07-12
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    • 2014-03-11
    • 1970-01-01
    相关资源
    最近更新 更多