Как да запазя или запазя селекции от ActiveX списъчни полета в Excel?
Да предположим, че сте създали някои списъчни полета и сте направили избор в списъчните полета, но всички селекции от тези списъчни полета изчезват, когато затворите и отворите отново работната книга. Искате ли да запазите селекциите, направени в списъчните полета, когато затваряте и отваряте отново работната книга? Методът в тази статия може да ви помогне.
Запазете или запазете селекции от 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” ще бъде създаден автоматично в края на всички работни листове на вашата работна книга, моля, игнорирайте този работен лист, защото ще изчезне автоматично, когато работната книга бъде затворена.
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!