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

Как бързо да премествате елементи между две списъчни полета в Excel?

Автор: Слънце Последна промяна: 2018-12-12

Опитвали ли сте някога да преместите елементите от едно списъчно поле в друго списъчни полета, както ви е необходимо, както е показано на екранната снимка по-долу? Тук ще говоря за тази операция в Excel.

doc преместване на елементи между списъчно поле 1 doc стрелка надясно doc преместване на елементи между списъчно поле 2

Преместване на елементи между списъчните полета


Преместване на елементи между списъчните полета

Няма вградена функция, която да ви помогне да завършите работата, но имам VBA код, който може да ви направи услуга.

1. Първо, трябва да създадете списък с данни, които ще се показват като елементи в списъчните полета в нов лист, който се нарича Admin_Lists.
doc преместване на елементи между списъчно поле 3

2. След това изберете тези данни и отидете на Име кутия, за да им даде име ItemList. Вижте екранна снимка:
doc преместване на елементи между списъчно поле 4

3. След това в лист, който ще съдържа двете списъчни полета, щракнете Софтуерен Инженер > Поставете > Списъчно поле (Active X Control)и нарисувайте две списъчни полета. Вижте екранна снимка:

doc преместване на елементи между списъчно поле 5 doc стрелка надясно doc преместване на елементи между списъчно поле 6

Ако Софтуерен Инженер разделът е скрит вашата лента, Как да покажа/покажа раздела за програмисти в лентата на Excel 2007/2010/2013? тази статия ще ви каже как да го покажете.

4. След това кликнете Софтуерен Инженер > Поставете > Команден бутон (Active X Control)и нарисувайте четири бутона между две списъчни полета. Вижте екранна снимка:

doc преместване на елементи между списъчно поле 7 doc стрелка надясно doc преместване на елементи между списъчно поле 8

Сега да преименуваме четирите командни бутона с нови имена.

5. Изберете първия команден бутон, щракнете Имоти, и в Имоти прозорец, дайте име BTN_moveAllRight към него и въведете >> в текстовото поле отстрани Надпис. Вижте екранна снимка:
doc преместване на елементи между списъчно поле 9

6. Повторете стъпка 5, за да преименувате последните три командни бутона с имена по-долу и също така въведете различната стрелка в надписите. Вижте екранна снимка:

BTN_MoveSelectedRight

BTN_moveAllLeft

BTN_MoveSelectedLeft

doc преместване на елементи между списъчно поле 10 doc преместване на елементи между списъчно поле 11 doc преместване на елементи между списъчно поле 12

7. Щракнете с десния бутон върху името на листа, който съдържа списъчните полета и командните бутони, и изберете Преглед на кода от контекстното меню. Вижте екранна снимка:
doc преместване на елементи между списъчно поле 13

8. Копирайте и поставете макро кода по-долу в Модули след това запазете кода и затворете Microsoft Visual Basic за приложения прозорец. Вижте екранна снимка

VBA: Преместване на елементи между две списъчни полета

Private Sub Worksheet_Activate()
'UpdatebyExtendoffice20171117
    Dim xCell As Range
    Dim xRg As Range
    Set xRg = Sheets("Admin_Lists").Range("ItemList")
    Me.ListBox1.Clear
    Me.ListBox2.Clear
    With Me.ListBox1
        .LinkedCell = ""
        .ListFillRange = ""
        For Each xCell In xRg
            If xCell <> "" Then
                .AddItem xCell.Value
            End If
        Next xCell
    End With
    Me.ListBox1.MultiSelect = fmMultiSelectMulti
    Me.ListBox2.MultiSelect = fmMultiSelectMulti
End Sub

Private Sub BTN_MoveSelectedLeft_Click()
    Call moveSigle(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_MoveSelectedRight_Click()
    Call moveSigle(Me.ListBox1, Me.ListBox2)
End Sub

Private Sub BTN_moveAllLeft_Click()
    Call moveAll(Me.ListBox2, Me.ListBox1)
End Sub

Private Sub BTN_moveAllRight_Click()
    Call moveAll(Me.ListBox1, Me.ListBox2)
End Sub

Sub moveAll(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        xListBox2.AddItem xListBox1.List(I)
    Next I
    xListBox1.Clear
End Sub

Sub moveSigle(xListBox1 As Object, xListBox2 As Object)
    Dim I As Long
    For I = 0 To xListBox1.ListCount - 1
        If I = xListBox1.ListCount Then Exit Sub
        If xListBox1.Selected(I) = True Then
            xListBox2.AddItem xListBox1.List(I)
            xListBox1.RemoveItem I
            I = I - 1
        End If
    Next
End Sub

 doc преместване на елементи между списъчно поле 14

9. След това отидете на друг лист, след което се върнете към листа, който съдържа списъчните полета, сега можете да видите, че данните от списъка са били изброени в първото едно списъчно поле. И щракнете върху командните бутони, за да преместите елементите между две списъчни полета.
doc преместване на елементи между списъчно поле 15

Преместване на селекцията

doc преместване на елементи между списъчно поле 16 doc стрелка надясно doc преместване на елементи между списъчно поле 17

Преместете всички

doc преместване на елементи между списъчно поле 18 doc стрелка надясно doc преместване на елементи между списъчно поле 19

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

🤖 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
My excel becomes unresponsive after running this code. what could be the problem?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations