Код, связанный с листом Excel, добавленный из другой книги, исчезает после закрытия и повторного открытия файла - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть книга Excel в формате xlsb (назовем ее «Child-workbook»), автоматически созданная другой книгой Excel («Parent-workbook»).Эта так называемая «Детская книга» имеет несколько листов, содержащих графики.Я хочу, чтобы на этих листах был код, который запускается каждый раз, когда пользователь выбирает лист, и я хочу, чтобы «Родительская рабочая книга» перенесла этот код в «Дочернюю рабочую книгу».Передача выполнена успешно, модуль появляется в проекте рабочей книги Child, пока я его не закрою (конечно, я сохраняю его до этого ...).

Вот изображение того, как это выглядиткак после сохранения, но перед закрытием «Child.xlsb».

Моя проблема в том, что когда я снова открываю книгу Child, модуль все еще там, но его содержимое полностью исчезло, он пуст.

Вот изображение того, как оно выглядит после сохранения, закрытия и повторного открытия.

Любой совет?

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

1 Ответ

0 голосов
/ 17 апреля 2019

Возможно проблемы с txt файлом

Попробуйте прочитать сначала и запустить CreateEventProcedure

Константы редактора VBA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...