ບັນຊີລາຍຊື່ແບບເລື່ອນລົງຄລາສສິກໃນເອກະສານ Excel ແມ່ນດີຫຼາຍ, ແຕ່ມັນພຽງແຕ່ອະນຸຍາດໃຫ້ທ່ານເລືອກເອົາທາງເລືອກຫນຶ່ງຈາກຊຸດທີ່ນໍາສະເຫນີ. ບາງຄັ້ງນີ້ແມ່ນສິ່ງທີ່ທ່ານຕ້ອງການ, ແຕ່ມີສະຖານະການທີ່ຜູ້ໃຊ້ສາມາດເລືອກໄດ້ ບາງ ອົງປະກອບຈາກບັນຊີລາຍຊື່.
ຂໍໃຫ້ພິຈາລະນາການປະຕິບັດແບບປົກກະຕິຂອງບັນຊີລາຍຊື່ທີ່ເລືອກຫຼາຍອັນ.
ທາງເລືອກ 1. ແນວນອນ
ຜູ້ໃຊ້ເລືອກລາຍການຈາກບັນຊີລາຍການເລື່ອນລົງຫນຶ່ງໂດຍຫນຶ່ງ, ແລະພວກເຂົາເຈົ້າປະກົດວ່າດ້ານຂວາຂອງເຊລທີ່ຈະຖືກປ່ຽນແປງ, ໂດຍອັດຕະໂນມັດຈະຖືກບັນຊີລາຍການຕາມລວງນອນ:
ລາຍຊື່ແບບເລື່ອນລົງໃນເຊລ C2:C5 ໃນຕົວຢ່າງນີ້ຖືກສ້າງຂື້ນໃນແບບມາດຕະຖານເຊັ່ນ
- ເລືອກຕາລາງ C2:C5
- ແຖບ ຫຼືເມນູ ຂໍ້ມູນ ເລືອກທີມ ການກວດສອບຂໍ້ມູນ
- ໃນປ່ອງຢ້ຽມທີ່ເປີດ, ເລືອກເອົາທາງເລືອກ ບັນຊີລາຍຊື່ ແລະລະບຸເປັນໄລຍະ ແຫຼ່ງຂໍ້ມູນ ເຊລທີ່ມີຂໍ້ມູນແຫຼ່ງສໍາລັບລາຍຊື່ A1:A8
ຫຼັງຈາກນັ້ນ, ທ່ານຈໍາເປັນຕ້ອງເພີ່ມ macro ກັບໂມດູນແຜ່ນ, ເຊິ່ງຈະເຮັດວຽກຕົ້ນຕໍທັງຫມົດ, ie ເພີ່ມຄ່າທີ່ເລືອກຢູ່ເບື້ອງຂວາຂອງຈຸລັງສີຂຽວ. ເພື່ອເຮັດສິ່ງນີ້, ໃຫ້ຄລິກຂວາໃສ່ແຖບແຜ່ນທີ່ມີບັນຊີລາຍຊື່ເລື່ອນລົງແລະເລືອກຄໍາສັ່ງ Source code. ວາງລະຫັດຕໍ່ໄປນີ້ໃສ່ໜ້າຈໍບັນນາທິການ Visual Basic ທີ່ເປີດຂຶ້ນ:
Private Sub Worksheet_Change(ByVal Target As Range) ໃນຄວາມຜິດພາດ ສືບຕໍ່ຕໍ່ໄປຖ້າບໍ່ Intersect(Target, Range("C2:C5")) ບໍ່ມີຫຍັງ ແລະ Target.Cells.Count = 1 ຫຼັງຈາກນັ້ນ Application.EnableEvents = False ຖ້າ Len(Target.Offset (0, 1)) = 0 ຈາກນັ້ນ Target.Offset(0, 1) = ເປົ້າໝາຍອື່ນ Target.End(xlToRight).Offset(0, 1) = ເປົ້າໝາຍສິ້ນສຸດ ຖ້າ Target.ClearContents Application.EnableEvents = True End ຖ້າສິ້ນສຸດການຍ່ອຍ
ຖ້າຈໍາເປັນ, ແທນທີ່ລະດັບຄວາມອ່ອນໄຫວຂອງລາຍການແບບເລື່ອນລົງ C2:C5 ໃນແຖວທີສອງຂອງລະຫັດນີ້ດ້ວຍຕົວຂອງທ່ານເອງ.
ທາງເລືອກ 2. ແນວຕັ້ງ
ຄືກັນກັບໃນຮຸ່ນກ່ອນ, ແຕ່ຄ່າທີ່ເລືອກໃຫມ່ບໍ່ໄດ້ຖືກເພີ່ມໃສ່ຂວາ, ແຕ່ລົງລຸ່ມ:
ມັນຖືກເຮັດໃນແບບດຽວກັນ, ແຕ່ລະຫັດ macro handler ປ່ຽນແປງເລັກນ້ອຍ:
Private Sub Worksheet_Change(ByVal Target As Range) ໃນຄວາມຜິດພາດ ສືບຕໍ່ຕໍ່ໄປຖ້າບໍ່ Intersect(Target, Range("C2:F2")) ບໍ່ມີຫຍັງ ແລະ Target.Cells.Count = 1 ຫຼັງຈາກນັ້ນ Application.EnableEvents = False ຖ້າ Len(Target.Offset (1, 0)) = 0 ຈາກນັ້ນ Target.Offset(1, 0) = ເປົ້າໝາຍອື່ນ Target.End(xlDown).Offset(1, 0) = ເປົ້າໝາຍສິ້ນສຸດ ຖ້າ Target.ClearContents Application.EnableEvents = True End ຖ້າສິ້ນສຸດການຍ່ອຍ
ອີກເທື່ອໜຶ່ງ, ຖ້າຈຳເປັນ, ແທນທີ່ລະດັບຄວາມອ່ອນໄຫວຂອງລາຍການແບບເລື່ອນລົງ C2:F2 ດ້ວຍຕົວເຈົ້າເອງໃນແຖວທີສອງຂອງລະຫັດນີ້.
ທາງເລືອກ 3. ດ້ວຍການສະສົມຢູ່ໃນຫ້ອງດຽວກັນ
ໃນຕົວເລືອກນີ້, ການສະສົມເກີດຂື້ນຢູ່ໃນຫ້ອງດຽວກັນທີ່ບັນຊີລາຍຊື່ເລື່ອນລົງແມ່ນຕັ້ງຢູ່. ອົງປະກອບທີ່ເລືອກຖືກແຍກອອກດ້ວຍຕົວອັກສອນທີ່ໃຫ້ມາ (ຕົວຢ່າງ, ເຄື່ອງໝາຍຈຸດ):
ບັນຊີລາຍຊື່ແບບເລື່ອນລົງໃນຈຸລັງສີຂຽວແມ່ນຖືກສ້າງຂຶ້ນໃນແບບມາດຕະຖານຢ່າງສົມບູນ, ຄືກັບວິທີການທີ່ຜ່ານມາ. ການເຮັດວຽກທັງຫມົດແມ່ນສໍາເລັດ, ອີກເທື່ອຫນຶ່ງ, ໂດຍ macro ໃນໂມດູນແຜ່ນ:
Private Sub Worksheet_Change(ByVal Target As Range) ໃນຄວາມຜິດພາດ ສືບຕໍ່ຕໍ່ໄປ ຖ້າບໍ່ Intersect(Target, Range("C2:C5")) is nothing and Target.Cells.Count = 1 ຫຼັງຈາກນັ້ນ Application.EnableEvents = False newVal = Target Application.Undo oldval = ເປົ້າໝາຍຖ້າ Len(oldval) <> 0 ແລະ oldval <> newVal ຫຼັງຈາກນັ້ນ ເປົ້າໝາຍ = ເປົ້າໝາຍ & "," & newVal Else Target = newVal End ຖ້າ ຫາກ Len(newVal) = 0 ແລ້ວ Target.ClearContents Application.EnableEvents = True End ຖ້າ ຈົບຍ່ອຍ
ຖ້າຕ້ອງການ, ທ່ານສາມາດປ່ຽນຕົວອັກສອນຕົວແຍກ (ເຄື່ອງໝາຍຈຸດ) ໃນແຖວທີ 9 ຂອງລະຫັດດ້ວຍຕົວເຈົ້າເອງ (ຕົວຢ່າງ, ຊ່ອງຫວ່າງ ຫຼືເຄື່ອງໝາຍຈຸດ).
- ວິທີການສ້າງບັນຊີລາຍຊື່ແບບເລື່ອນລົງແບບງ່າຍໆໃນຕາລາງ Excel
- ບັນຊີລາຍຊື່ແບບເລື່ອນລົງທີ່ມີເນື້ອຫາ
- ລາຍຊື່ແບບເລື່ອນລົງພ້ອມກັບຕົວເລືອກທີ່ຂາດຫາຍໄປຖືກເພີ່ມ
- ມະຫາພາກແມ່ນຫຍັງ, ວິທີການໃຊ້ພວກມັນ, ບ່ອນທີ່ໃສ່ລະຫັດມະຫາພາກໃນ Visual Basic