我有一个xlsb格式的excel工作簿(我们称它为“子工作簿”)是由另一个excel工作簿(“父工作簿”)自动生成的。这个所谓的“子工作簿”有一些工作表,其中包含图表。我希望这些工作表有一个每次用户选择工作表时运行的代码,我希望“父工作簿”将该代码传输到“子工作簿”。传输已成功完成,该模块确实会出现在子工作簿的项目中,直到我将其关闭(当然,我在此之前保存了它...)。
Here is an image of how it looks like after saving but before closing "Child.xlsb".
我的问题是,当我重新打开Child工作簿时,模块仍然在那里,但它的内容完全消失了,它是空的。
Here is an image of how it looks like after saving, closing and reopening it.
有什么建议吗?
Sub TransferModule()
Const MODULE_NAME As String = "DiagramMakro"
Dim MODULEFILE As String
MODULEFILE = "C:\Modul.txt"
Workbooks("Parent.xlsm").VBProject.VBComponents(MODULE_NAME).Export MODULEFILE
For i = 1 To Workbooks("CHILD.xlsb").Sheets.Count
If Workbooks("CHILD.xlsb").Worksheets(i).Name Like "Diagram*" Then
Workbooks("CHILD.xlsb").Worksheets(i).Activate
Workbooks("CHILD.xlsb").VBProject.VBComponents(ActiveSheet.CodeName).Name = MODULE_NAME
Workbooks("CHILD.xlsb").VBProject.VBComponents.Item("CHILD.xlsb").CodeModule.AddFromFile (MODULEFILE)
End If
Next i
Kill MODULEFILE
End Sub下面是要传输的模块:
Private Sub Worksheet_Activate()
Dim myChart As Chart
Dim mySeries As SeriesCollection
Set myChart = ActiveSheet.ChartObjects(1).Chart
Set mySeries = myChart.SeriesCollection
For i = 3 To mySeries.Count
mySeries.Item(i).Format.Line.Visible = msoFalse
Next i
End Sub发布于 2019-04-17 20:26:45
https://stackoverflow.com/questions/55722992
复制相似问题