Excel 通过模块向工作表中添加宏代码
我目前创建了一个宏,它接收大量数据(每周从数据库中提取),并将其显示在多个不同的透视表中。我在工作簿的开头还有一个摘要页面,列出了不同的客户和机器名称。目前,我编写了一个宏,这样我就可以单击其中一个客户名称,并通过工作表选择更改事件打开与该客户关联的工作表Excel 通过模块向工作表中添加宏代码,excel,vba,macros,Excel,Vba,Macros,我目前创建了一个宏,它接收大量数据(每周从数据库中提取),并将其显示在多个不同的透视表中。我在工作簿的开头还有一个摘要页面,列出了不同的客户和机器名称。目前,我编写了一个宏,这样我就可以单击其中一个客户名称,并通过工作表选择更改事件打开与该客户关联的工作表 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If SheetExists(Right(Replace(Replace(ActiveCell.Value, "
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网站上的模板(空)(具有访问跟踪、版本控制等功能)。使用加载项或模板执行此操作您的数据是什么样子的?你能显示你的宏的代码吗?用事件代码更新,不幸的是我不能显示生成宏的很多内容,我一直认为数据是机密的,而不是你正在编写的VBA代码。无论如何,基本问题是您正在寻找VBA代码来更改VBA代码。虽然这是可能的,但我只知道VBA代码可以更改驻留在模块中的VBA代码。但是,您需要更改工作表上的代码。据我所知,这是不可能的。因此,最好的建议仍然是@Nathan_Sav建议的:模板或插件。我通常使用SharePoint网站上的模板(空)(带有访问跟踪、版本控制等)。