Прескочи на основното съдържание

Как да запазя или запазя селекции от ActiveX списъчни полета в Excel?

Автор: Силувия Последна промяна: 2018-04-10

Да предположим, че сте създали някои списъчни полета и сте направили избор в списъчните полета, но всички селекции от тези списъчни полета изчезват, когато затворите и отворите отново работната книга. Искате ли да запазите селекциите, направени в списъчните полета, когато затваряте и отваряте отново работната книга? Методът в тази статия може да ви помогне.

Запазете или запазете селекции от ActiveX списъчни полета с VBA код в Excel


Лесно вмъквайте или изтривайте множество квадратчета за отметка в Excel:

- Квадратчета за отметка за партидно вмъкване комунални услуги на Kutools за Excel може да ви помогне бързо да поставите няколко квадратчета за отметка в избран диапазон наведнъж. И можете да изтриете всички квадратчета за отметка в избрания диапазон с Квадратчета за пакетно изтриване. Вижте екранна снимка:

Kutools за Excel: с повече от 200 удобни добавки за Excel, безплатни за изпробване без ограничение за 60 дни. Изтеглете и изпробвайте безплатно сега!


Запазете или запазете селекции от ActiveX списъчни полета с VBA код в Excel

Кодът VBA по-долу може да ви помогне да запазите или запазите селекции, ако ActiveX списъчните полета в Excel. Моля, направете следното.

1. В работната книга съдържа списъчните полета на ActiveX, които искате да запазите, натиснете Друг + F11 клавиши едновременно, за да отворите Microsoft Visual Basic за приложения прозорец.

2. В Microsoft Visual Basic за приложения прозорец, щракнете двукратно Тази работна книга в левия панел, за да отворите Тази работна книга код прозорец. След това копирайте следния VBA код в прозореца на кода.

VBA код: Запазете селекциите на ActiveX списъчни полета в Excel

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim I As Long
    Dim J As Long
    Dim K As Long
    Dim KK As Long
    Dim xSheet As Worksheet
    Dim xListBox As Object
    On Error GoTo Label
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    K = 0
    KK = 0
    If Not Sheets("ListBox Data") Is Nothing Then
        Sheets("ListBox Data").Delete
    End If
Label:
    Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ListBox Data"
    Set xSheet = Sheets("ListBox Data")
    For I = 1 To Sheets.Count
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                For J = 0 To .ListCount - 1
                    If .Selected(J) Then
                        xSheet.Range("A1").Offset(K, KK).Value = "True"
                    Else
                        xSheet.Range("A1").Offset(K, KK).Value = "False"
                    End If
                    K = K + 1
                Next
                End With
                K = 0
                KK = KK + 1
            End If
        Next
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Private Sub Workbook_Open()
    Dim I As Long
    Dim J As Long
    Dim KK As Long
    Dim xRg As Range
    Dim xCell As Range
    Dim xListBox As Object
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    KK = 0
    For I = 1 To Sheets.Count - 1
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                    Set xRg = Intersect(Sheets("ListBox Data").Range("A1").Offset(0, KK).EntireColumn, Sheets("ListBox Data").UsedRange)
                    For J = 1 To .ListCount
                        Set xCell = xRg(J)
                        If xCell.Value = "True" Then
                            .Selected(J - 1) = True
                        End If
                    Next
                    KK = KK + 1
                End With
            End If
        Next
    Next
    Sheets("ListBox Data").Delete
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

3. Натисни Друг + Q ключове за затваряне на Microsoft Visual Basic за приложения прозорец.

4. Сега трябва да запишете работната книга като работна книга с активиран макрос на Excel. Моля щракнете досие > Save As > паса.

5. В Save As диалогов прозорец, изберете папка, за да запазите работната книга, преименувайте я, както е необходимо, изберете Работна книга с активирани макроси на Excel в Запиши като тип падащ списък и накрая щракнете върху Save бутон. Вижте екранна снимка:

Моля, запазвайте работната книга всеки път, когато актуализирате списъчните полета. След това всички предишни селекции ще бъдат запазени в списъчните полета след повторно отваряне на работната книга.

Забележка: Когато записвате работната книга, работен лист с име „Данни в ListBox” ще бъде създаден автоматично в края на всички работни листове на вашата работна книга, моля, игнорирайте този работен лист, защото ще изчезне автоматично, когато работната книга бъде затворена.

Най-добрите инструменти за продуктивност в офиса

🤖 Kutools AI помощник: Революционизирайте анализа на данни въз основа на: Интелигентно изпълнение   |  Генериране на код  |  Създаване на персонализирани формули  |  Анализирайте данни и генерирайте диаграми  |  Извикване на функциите на Kutools...
Популярни функции: Намерете, маркирайте или идентифицирайте дубликати   |  Изтриване на празни редове   |  Комбинирайте колони или клетки без загуба на данни   |   Кръг без формула ...
Супер търсене: VLookup с множество критерии    VLookup с множество стойности  |   VLookup в няколко листа   |   Размито търсене ....
Разширен падащ списък: Бързо създаване на падащ списък   |  Зависим падащ списък   |  Падащ списък с множество избори ....
Мениджър на колони: Добавете конкретен брой колони  |  Преместване на колони  |  Превключване на състоянието на видимост на скритите колони  |  Сравнете диапазони и колони ...
Препоръчани функции: Мрежов фокус   |  Изглед на дизайна   |   Голям формула бар    Мениджър на работни книги и листове   |  Библиотека с ресурси (Автоматичен текст)   |  Избор на дата   |  Комбинирайте работни листове   |  Шифроване/декриптиране на клетки    Изпращайте имейли по списък   |  Супер филтър   |   Специален филтър (филтър получер/курсив/зачертано...) ...
Топ 15 комплекта инструменти12 Текст Инструменти (добавяне на текст, Премахване на символи, ...)   |   50 + Графика Видове (диаграма на Гант, ...)   |   40+ Практичен формули (Изчислете възрастта въз основа на рождения ден, ...)   |   19 вмъкване Инструменти (Въведете QR код, Вмъкване на картина от пътя, ...)   |   12 Конверсия Инструменти (Числа към думи, Валутен обмен, ...)   |   7 Обединяване и разделяне Инструменти (Разширено комбиниране на редове, Разделени клетки, ...)   |   ... и още

Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време.  Щракнете тук, за да получите функцията, от която се нуждаете най-много...

Описание


Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна

  • Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
  • Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi - Is there any way to prevent the "ListBox Data" tab from opening when you save the file? We're trying to send this to users but every time I save it opens the ListBox Data tab and then I can't save it with the primary tab open - which is confusing for users.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations