Я не уверен, но думаю, что вы, возможно, наткнулись на ошибку.
Существует элемент управления Microsoft Forms 2.0 под Больше элементов управления , но я уверен, что он предназначен только для использования на пользовательских формах.
Я попытался добавить его на лист и получил ошибку. Однако, как только я добавил один в UserForm и вернулся к рабочему листу, я смог добавить его ... но на мгновение все стало "глючно", и когда я открыл диалоговое окно Properties для тела, шрифт был плохо отрисован ,
Вся документация, на которую я смотрел (например, , , , и , ), содержит только примеры его использования в пользовательской форме или в Outlook. ,
Существует много типов элементов управления ActiveX, и не все из них можно использовать где-либо. Как правило, в Excel лучше придерживаться встроенных элементов управления.
Также с другого форума:
Q : Кажется, я не смог найти и добавить многостраничный элемент управления в лист.
Как добавить многостраничный элемент управления на лист Excel?
A : Если вы сначала не поместите его в пользовательскую форму, вы не сможете отобразить его на рабочем листе. UserForm предоставляет пользовательский интерфейс для VBA. MultiPagecontrol предназначен для работы с этим пользовательским интерфейсом, а не с таблицей Excel. Есть ли проблема с использованием пользовательской формы для отображения элемента управления MutliPage? Источник: Лейт Росс
Это объединенное свидетельство говорит мне, , даже если вы можете заставить его работать, вы не должны . Там нет предсказания, как он будет себя вести.
Если вы решите использовать MultiPage для пользовательской формы, обратите внимание, что в приведенном выше примере MultiPage1
- это имя элемента управления ; это не относится к "странице 1". Элемент управления в целом имеет событие Click
, которое не относится к конкретной странице:
Private Sub MultiPage1_Click(ByVal Index As Long)
Ради полноты я вставлю полный пример кода, но еще раз: это не рекомендуется для элемента управления на основе листа.
Как: получить доступ к странице в многостраничном элементе управления
В следующем примере доступ к отдельной странице MultiPage осуществляется несколькими способами:
Использование коллекции страниц с числовым индексом.
Использование имени отдельной страницы в MultiPage.
Использование свойства SelectedItem.
Чтобы использовать этот пример, скопируйте этот пример кода в Редактор сценариев формы . Убедитесь, что форма содержит MultiPage с именем MultiPage1
и CommandButton с именем CommandButton1
.
Sub CommandButton1_Click()
Dim PageName
Set MultiPage1 = Item.GetInspector.ModifiedFormPages("P.2").MultiPage1
For i = 0 To MultiPage1.Count - 1
'Use index (numeric or string)
MsgBox "MultiPage1.Pages(i).Caption = " & MultiPage1.Pages(i).Caption
MsgBox "MultiPage1.Pages.Item(i).Caption = " & _
MultiPage1.Pages.Item(i).Caption
'Use Page object without referring to Pages collection
If i = 0 Then
MsgBox "MultiPage1.Page1.Caption = " & MultiPage1.Page1.Caption
ElseIf i = 1 Then
MsgBox "MultiPage1.Page2.Caption = " & MultiPage1.Page2.Caption
End If
'Use SelectedItem Property
MultiPage1.Value = i
MsgBox "MultiPage1.SelectedItem.Caption = " & _
MultiPage1.SelectedItem.Caption
Next
End Sub
( Источник )
Теперь я собираюсь удалить этот лист с ошибками и перезагрузить ; Я бы посоветовал вам сделать то же самое!