То, что я хотел бы сделать, это удалить пользовательскую форму и заменить ее обновленной пользовательской формой, используя VBA для Excel.
Я экспортировал исходную пользовательскую форму, внес свои изменения и теперь хотел бы заменить исходную нановая форма пользователя.Обе пользовательские формы имеют одинаковые имена.Я надеюсь, что при сохранении имен UserForm кнопка, активирующая пользовательскую форму, не будет повреждена.
У меня будет цикл VBA по всем книгам, и я сделаю это ~ 3200 раз.
Sub Macro2()
'''delete and replace a UserForm
'Dim some stuff
Application.ScreenUpdating = False
Dim SourceRow As Long
Dim EditRow As Long
Dim sFile As String
Dim wb As Workbook
Dim FileName1 As String
Dim FileName2 As String
Dim wksSource As Worksheet
Const scWkbSourceName As String = "theFILE.xlsm"
Set wkbSource = Workbooks(scWkbSourceName)
Set wksSource = wkbSource.Sheets("Sheet1")
Const wsOriginalBook As String = "theFILE.xlsm"
Const sPath As String = "C:\examplefolder\" 'this is PATH
SourceRow = 5
''ENSURE SELECT SOURCE SHEET
Sheets("Sheet1").Select
Do While Cells(SourceRow, "C").Value <> ""
FileName1 = wksSource.Range("A" & SourceRow).Value
FileName2 = wksSource.Range("L" & SourceRow).Value
EditRow = 2
sFile = sPath & FileName1 & "\" & FileName2 & ".xlsm"
Set wb = Workbooks.Open(sFile)
''DIM OPEN WORKBOOK
Dim AWorkbook As Workbook
Set AWorkbook = ActiveWorkbook
With AWorkbook.VBProject.VBComponents
.Remove.Item ("NewJobEvent")
End With
''CLOSE WORKBOOK W/O BEFORE SAVE
Application.EnableEvents = False
ActiveWorkbook.Save
Application.EnableEvents = True
ActiveWorkbook.Close
Windows("theFILE.xlsm").Activate
Sheets("Sheet1").Select
SourceRow = SourceRow + 1 ' Move down 1 row for source sheet
Loop
End Sub
Любая помощь и указатели очень ценятся заранее.