Проблема: у меня возникла проблема с проверкой данных, которая не копируется на скопированный рабочий лист, когда рабочий лист копируется с помощью макроса. Есть ли способ сделать это, используя мой текущий код?
Да, я также знаю, что есть аналогичный вопрос (здесь: Проверка данных потеряна при копировании листа в другую книгу), но это не совсем та же проблема, и в настоящее время на нее нет ответа. Мы будем очень признательны за любую помощь в копировании этих проверок данных вместе с данными и сэкономим часы ненужной повторяющейся работы.
Изменить: этот код находится в разделе «ThisWorkbook» моей книги.
Мой код выглядит следующим образом:
Dim wb As Workbook
Dim wsTemp As Worksheet
Dim sName As String
Dim bValidName As Boolean
Dim i As Long
bValidName = False
Do While bValidName = False
sName = InputBox("Please name this new worksheet:", "New Sheet Name", Sh.Name)
If Len(sName) > 0 Then
For i = 1 To 7
sName = Replace(sName, Mid(":\/?*[]", i, 1), " ")
Next i
sName = Trim(Left(WorksheetFunction.Trim(sName), 31))
If Not Evaluate("ISREF('" & sName & "'!A1)") Then bValidName = True
End If
Loop
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
End With
Set wb = ThisWorkbook
Set wsTemp = wb.Sheets("TEMPLATE")
wsTemp.Visible = xlSheetVisible
wsTemp.Copy After:=wb.Sheets(wb.Sheets.Count)
ActiveSheet.Name = sName
Sh.Delete
wsTemp.Visible = xlSheetHidden 'Or xlSheetVeryHidden
With Application
.ScreenUpdating = True
.DisplayAlerts = True
.EnableEvents = True
End With
' Call Sort_Active_book
' Call Rebuild_TOC