ບັນຊີລາຍຊື່ແບບເລື່ອນລົງທີ່ມີຫຼາຍທາງເລືອກ

ບັນຊີລາຍຊື່ແບບເລື່ອນລົງຄລາສສິກໃນເອກະສານ Excel ແມ່ນດີຫຼາຍ, ແຕ່ມັນພຽງແຕ່ອະນຸຍາດໃຫ້ທ່ານເລືອກເອົາທາງເລືອກຫນຶ່ງຈາກຊຸດທີ່ນໍາສະເຫນີ. ບາງຄັ້ງນີ້ແມ່ນສິ່ງທີ່ທ່ານຕ້ອງການ, ແຕ່ມີສະຖານະການທີ່ຜູ້ໃຊ້ສາມາດເລືອກໄດ້ ບາງ ອົງປະກອບຈາກບັນຊີລາຍຊື່.

ຂໍໃຫ້ພິຈາລະນາການປະຕິບັດແບບປົກກະຕິຂອງບັນຊີລາຍຊື່ທີ່ເລືອກຫຼາຍອັນ.

ທາງເລືອກ 1. ແນວນອນ

ຜູ້​ໃຊ້​ເລືອກ​ລາຍ​ການ​ຈາກ​ບັນ​ຊີ​ລາຍ​ການ​ເລື່ອນ​ລົງ​ຫນຶ່ງ​ໂດຍ​ຫນຶ່ງ​, ແລະ​ພວກ​ເຂົາ​ເຈົ້າ​ປະ​ກົດ​ວ່າ​ດ້ານ​ຂວາ​ຂອງ​ເຊ​ລ​ທີ່​ຈະ​ຖືກ​ປ່ຽນ​ແປງ​, ໂດຍ​ອັດ​ຕະ​ໂນ​ມັດ​ຈະ​ຖືກ​ບັນ​ຊີ​ລາຍ​ການ​ຕາມ​ລວງ​ນອນ​:

ລາຍຊື່ແບບເລື່ອນລົງໃນເຊລ C2:C5 ໃນຕົວຢ່າງນີ້ຖືກສ້າງຂື້ນໃນແບບມາດຕະຖານເຊັ່ນ

  1. ເລືອກຕາລາງ C2:C5
  2. ແຖບ ຫຼືເມນູ ຂໍ້ມູນ ເລືອກທີມ ການກວດສອບຂໍ້ມູນ
  3. ໃນປ່ອງຢ້ຽມທີ່ເປີດ, ເລືອກເອົາທາງເລືອກ ບັນ​ຊີ​ລາຍ​ຊື່ ແລະລະບຸເປັນໄລຍະ ແຫຼ່ງຂໍ້ມູນ ເຊລທີ່ມີຂໍ້ມູນແຫຼ່ງສໍາລັບລາຍຊື່ 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

ອອກຈາກ Reply ເປັນ