ສາລະບານ
ບົດສອນສະແດງວິທີການເນັ້ນໃສ່ຄຳສັບທີ່ຊໍ້າກັນ ຫຼືສະຕຣິງຂໍ້ຄວາມພາຍໃນຕາລາງໂດຍໃຊ້ VBA.
ການຈັດຮູບແບບເງື່ອນໄຂຂອງ Excel ເຮັດໃຫ້ມັນເປັນໄປໄດ້ເພື່ອເນັ້ນໃຫ້ຊໍ້າກັນໃນທຸກວິທີທີ່ເປັນໄປໄດ້ທີ່ທ່ານສາມາດຄິດໄດ້: ມີ ຫຼືບໍ່ມີການປະກົດຕົວທີ 1, ໃນຖັນດຽວ ຫຼືຫຼາຍຖັນ, ເຊລທີ່ຊໍ້າກັນຕິດຕໍ່ກັນ, ແລະແຖວທັງໝົດໂດຍອີງໃສ່ຄ່າທີ່ຄືກັນໃນຖັນຫຼັກ. ແຕ່, ຕາມປົກກະຕິ, ມີ "ແຕ່". ກົດລະບຽບການຈັດຮູບແບບຕາມເງື່ອນໄຂເຮັດວຽກໃນລະດັບຕາລາງໃນຂະນະທີ່ທ່ານອາດຈະຕ້ອງການເນັ້ນໃສ່ຂໍ້ຄວາມທີ່ຊ້ໍາກັນແທນທີ່ຈະເປັນຕາລາງທັງຫມົດ. ນີ້ສາມາດເຮັດໄດ້ພຽງແຕ່ກັບ macro. ເຖິງແມ່ນວ່າທ່ານບໍ່ມີປະສົບການກັບ VBA, ກະລຸນາຢ່າຟ້າວທີ່ຈະປິດຫນ້ານີ້. ທີ່ນີ້, ເຈົ້າຈະພົບເຫັນຕົວຢ່າງລະຫັດທີ່ພ້ອມທີ່ຈະໃຊ້ ແລະຄໍາແນະນໍາລະອຽດກ່ຽວກັບວິທີການໃຊ້ພວກມັນຢູ່ໃນແຜ່ນວຽກຂອງເຈົ້າ.
ເນັ້ນໃສ່ຄໍາທີ່ຊໍ້າກັນຢູ່ໃນຕາລາງທີ່ບໍ່ສົນໃຈຂໍ້ຄວາມ
ຕົວຢ່າງນີ້ສະແດງໃຫ້ເຫັນວິທີການຈັດຮົ່ມຄໍາທີ່ຊ້ໍາກັນຫຼືຂໍ້ຄວາມຢູ່ໃນຫ້ອງທີ່ມີສີຕົວອັກສອນສີແດງເຊັ່ນໃນຮູບຂ້າງລຸ່ມນີ້. ກະລຸນາສັງເກດວ່າຕົວພິມນ້ອຍແລະຕົວພິມໃຫຍ່ຖືກປະຕິບັດເປັນຕົວອັກສອນດຽວກັນ. ຕົວຢ່າງ, Orange , ORANGE ແລະ Orange ແມ່ນຖືວ່າເປັນຄຳດຽວກັນ.
The ລະຫັດຂອງມະຫາພາກມີດັ່ງນີ້:
Public Sub HighlightDupesCaseInsensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "ໃສ່ຕົວຂັ້ນທີ່ແຍກຄ່າໃນຕາລາງ", "Delimiter", ", ") ສໍາລັບແຕ່ລະເຊລ.Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, False) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive As Boolean = True ) Dim text as String Dim words() As String String Dim wordIndex, matchCount, positionInText as Integer ຖ້າ CaseSensitive ຫຼັງຈາກນັ້ນ words = Split(Cell.Value, Delimiter) other words = Split(LCase(Cell.Value), Delimiter) End if for wordIndex = LBound (words) To UBound (words) - 1 word = words(wordIndex) matchCount = 0 ສຳລັບ nextWordIndex = wordIndex + 1 To UBound (words) ຖ້າ word = words(nextWordIndex) ຫຼັງຈາກນັ້ນ matchCount = matchCount + 1 End If Next NextWordIndex ຖ້າ matchCount > 0 ຫຼັງຈາກນັ້ນ text = "" For Index = LBound (words) To UBound (words) text = text & words(Index) ຖ້າ (words(Index) = word) ຫຼັງຈາກນັ້ນ Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End ຖ້າ text = text & Delimiter Next End ຖ້າຄໍາຕໍ່ໄປ Index End Subເນັ້ນໃສ່ຂໍ້ຄວາມທີ່ຊໍ້າກັນໃນ cell case-sensitive
ໃນສະຖານະການສ່ວນໃຫຍ່, ພວກເຮົາມີແນວໂນ້ມທີ່ຈະບໍ່ສົນໃຈກັບຕົວໜັງສືເມື່ອເຮັດວຽກກັບຂໍ້ຄວາມໃນ Excel. ຢ່າງໃດກໍຕາມ, ພາຍໃຕ້ສະຖານະການສະເພາະໃດຫນຶ່ງ, ກໍລະນີຂໍ້ຄວາມບໍ່ສໍາຄັນ. ຕົວຢ່າງ, ຖ້າທ່ານກໍາລັງຈັດການກັບ IDs, ລະຫັດຜ່ານ, ຫຼືບັນທຶກອື່ນໆຂອງປະເພດນັ້ນ, strings ເຊັ່ນ 1-AA , 1-aa ແລະ 1-Aa ບໍ່ຊໍ້າກັນ ແລະບໍ່ຄວນເນັ້ນໃສ່:
ໃນກໍລະນີນີ້,ໃຊ້ລະຫັດເວີຊັນຕໍ່ໄປນີ້:
Public Sub HighlightDupesCaseSensitive() Dim Cell As Range Dim Delimiter As String Delimiter = InputBox( "ໃສ່ຕົວຂັ້ນທີ່ແຍກຄ່າໃນຕາລາງ", "Delimiter", ", ") ສໍາລັບແຕ່ລະຄົນ. Cell ໃນ Application.Selection Call HighlightDupeWordsInCell(Cell, Delimiter, True ) Next End Sub Sub HighlightDupeWordsInCell(Cell As Range, Optional Delimiter As String = " " , Optional CaseSensitive As Boolean = True ) Dim text as String Dim words() As String word As String Dim wordIndex, matchCount, positionInText as Integer ຖ້າ CaseSensitive ຫຼັງຈາກນັ້ນ words = Split(Cell.Value, Delimiter) other words = Split(LCase(Cell.Value), Delimiter) End If for wordIndex = LBound (words) To UBound ( words) - 1 word = words(wordIndex) matchCount = 0 ສຳລັບ nextWordIndex = wordIndex + 1 To UBound (words) ຖ້າ word = words(nextWordIndex) ຫຼັງຈາກນັ້ນ matchCount = matchCount + 1 End If Next nextWordIndex ຖ້າ matchCount > 0 ຫຼັງຈາກນັ້ນ text = "" For Index = LBound (words) To UBound (words) text = text & words(Index) ຖ້າ (words(Index) = word) ຫຼັງຈາກນັ້ນ Cell.Characters(Len(text) - Len(word) + 1, Len(word)).Font.Color = vbRed End ຖ້າ text = text & Delimiter Next End ຖ້າຄໍາຕໍ່ໄປ Index End Subວິທີໃຊ້ macros ເພື່ອເນັ້ນໃສ່ຄໍາທີ່ຊໍ້າກັນໃນ Excel
ຖ້າທ່ານເປັນຜູ້ເລີ່ມຕົ້ນໃນການນໍາໃຊ້ VBA, ຄໍາແນະນໍາເທື່ອລະຂັ້ນຕອນຂ້າງລຸ່ມນີ້ຈະນໍາທ່ານຢ່າງສະດວກສະບາຍ. . ຜູ້ໃຊ້ທີ່ມີປະສົບການອາດຈະພຽງແຕ່ເລືອກລິ້ງດາວໂຫຼດແລ້ວຂ້າມສ່ວນທີ່ເຫຼືອ :)
ເພີ່ມລະຫັດໃສ່ປຶ້ມວຽກຂອງເຈົ້າ
ເຈົ້າເລີ່ມຕົ້ນດ້ວຍການໃສ່ລະຫັດມະຫາພາກໃນປຶ້ມວຽກ Excel ຂອງທ່ານ. ນີ້ແມ່ນວິທີ:
- ເປີດປື້ມວຽກບ່ອນທີ່ທ່ານຕ້ອງການເນັ້ນໃສ່ dupes.
- ກົດ Alt + F11 ເພື່ອເປີດ Visual Basic Editor.
- ຢູ່ແຖບດ້ານຊ້າຍ, ຄລິກຂວາ ThisWorkbook ແລະເລືອກ Insert > Module ຈາກເມນູບໍລິບົດ.
- ວາງລະຫັດໃສ່ໃນປ່ອງຢ້ຽມລະຫັດ.
- ເພື່ອຮັກສາມາໂຄຣເພື່ອໃຊ້ໃນອະນາຄົດ, ໃຫ້ແນ່ໃຈວ່າຈະບັນທຶກປຶ້ມວຽກຂອງເຈົ້າເປັນໄຟລ໌ .xlsm ທີ່ເປີດໃຊ້ມາໂຄຣ.
ອີກທາງເລືອກໜຶ່ງ, ທ່ານສາມາດດາວໂຫຼດປຶ້ມວຽກຂອງພວກເຮົາ ແລະແລ່ນມາໂຄຣໄດ້ຈາກບ່ອນນັ້ນ. ປຶ້ມວຽກຕົວຢ່າງມີມາໂຄຣຕໍ່ໄປນີ້:
- HighlightDupesCaseInsensitive - ຮົ່ມຊ້ຳກັນພາຍໃນຕາລາງທີ່ບໍ່ສົນໃຈຕົວພິມຕົວອັກສອນ.
- HighlightDupesCaseSensitive - ຈຸດເດັ່ນ dupes ໃນຕາລາງທີ່ພິຈາລະນາກໍລະນີຕົວອັກສອນ.
ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ກະລຸນາເບິ່ງວິທີໃສ່ລະຫັດ VBA ໃນ Excel.
ແລ່ນ macro
ດ້ວຍລະຫັດ ເພີ່ມໃສ່ປຶ້ມວຽກຂອງເຈົ້າເອງ ຫຼືໄຟລ໌ຕົວຢ່າງຂອງພວກເຮົາທີ່ດາວໂຫຼດມາ ແລະເປີດ, ແລ່ນມະຫາພາກດ້ວຍວິທີນີ້:
- ໃນແຜ່ນງານຂອງເຈົ້າ, ເລືອກຕາລາງທີ່ທ່ານຕ້ອງການເນັ້ນຂໍ້ຄວາມຊໍ້າກັນ. ນີ້ສາມາດເປັນໄລຍະໜຶ່ງ ຫຼືຫຼາຍໄລຍະທີ່ບໍ່ຕິດກັນ.
- ກົດ Alt + F8 .
- ເລືອກມະຫາພາກທີ່ສົນໃຈ ແລະຄລິກ Run .
- ມະຫາພາກຈະຂໍໃຫ້ເຈົ້າລະບຸຕົວຂັ້ນທີ່ແຍກຄ່າໃນຕາລາງທີ່ເລືອກ. ຕົວຂັ້ນທີ່ຕັ້ງໄວ້ລ່ວງໜ້າ (ເຄື່ອງໝາຍຈຸດ ແລະຊ່ອງຫວ່າງໃນກໍລະນີຂອງພວກເຮົາ) ຈະປາກົດຢູ່ໃນກ່ອງປ້ອນຂໍ້ມູນໂດຍອັດຕະໂນມັດ. ອີງຕາມຄວາມຕ້ອງການຂອງທ່ານ, ທ່ານສາມາດອອກຈາກຕົວຂັ້ນເລີ່ມຕົ້ນຫຼືພິມອັນອື່ນ, ແລະຫຼັງຈາກນັ້ນໃຫ້ຄລິກໃສ່ OK.
ບໍ່ດົນຫຼັງຈາກນັ້ນ, ທຸກສາຍທີ່ຊ້ໍາກັນຢູ່ໃນທີ່ເລືອກ. ເຊລຈະຖືກຮົ່ມເປັນສີແດງ (ຫຼືສີຕົວອັກສອນໃດກໍ່ຕາມທີ່ຕັ້ງຢູ່ໃນລະຫັດຂອງທ່ານ).
ຄໍາແນະນໍາ. ເພື່ອ ລຶບສິ່ງທີ່ຊ້ຳກັນ ພາຍໃນເຊລ, ທ່ານສາມາດໃຊ້ Remove Duplicate Substrings, ເຊິ່ງເປັນໜຶ່ງໃນເຄື່ອງມືປະຢັດເວລາຫຼາຍອັນທີ່ລວມຢູ່ໃນ Ultimate Suite ຂອງພວກເຮົາ.
ວິທີປັບລະຫັດຕາມຄວາມຕ້ອງການຂອງເຈົ້າ
ດ້ວຍບັນທຶກການນຳໃຊ້ເຫຼົ່ານີ້ ແລະຄວາມຮູ້ພື້ນຖານຂອງ VBA (ຫຼືພຽງແຕ່ປະຕິບັດຕາມຄໍາແນະນໍາຂ້າງລຸ່ມນີ້ຢ່າງໃກ້ຊິດ), ທ່ານສາມາດດັດແປງລະຫັດໃຫ້ສອດຄ່ອງກັບຄວາມຕ້ອງການຂອງທ່ານໄດ້ຢ່າງງ່າຍດາຍ.
ວາງຢູ່ໃນໂມດູນດຽວກັນ
ຕາມທີ່ເຈົ້າອາດຈະສັງເກດເຫັນ, ທັງ macros ( HighlightDupesCaseSensitive ແລະ HighlightDupesCaseInsensitive ) ໂທຫາ HighlightDupeWordsInCell function. ຄວາມແຕກຕ່າງລະຫວ່າງສອງ macro ຂ້າງເທິງແມ່ນພຽງແຕ່ຢູ່ໃນພາລາມິເຕີທີ 3 (CaseSensitive) ທີ່ສົ່ງໄປຫາຫນ້າທີ່ດັ່ງກ່າວ.
ສໍາລັບການຄົ້ນຫາທີ່ລະອຽດອ່ອນ, ມັນຖືກກໍານົດເປັນ TRUE:
Call HighlightDupeWordsInCell(Cell, Delimiter, True)
ສຳລັບການຄົ້ນຫາແບບ case-insensitive, ມັນຖືກຕັ້ງເປັນ FALSE:
Call HighlightDupeWordsInCell(Cell, Delimiter, False)
ເພື່ອໃຫ້ macros ເຮັດວຽກ, ລະຫັດຂອງຟັງຊັນ HighlightDupeWordsInCell ຈະຕ້ອງຖືກວາງໃສ່. ໂມດູນດຽວກັນກັບmacros.
ຕົວຂັ້ນ
ເມື່ອເປີດໃຊ້, ມາໂຄຣຈະຂໍໃຫ້ເຈົ້າລະບຸຕົວຂັ້ນທີ່ແຍກຄຳສັບ/ສະຕຣິງໃນຕາລາງທີ່ເລືອກ. ຕົວຂັ້ນເລີ່ມຕົ້ນແມ່ນເຄື່ອງໝາຍຈຸດ ແລະ ຍະຫວ່າງ (", ") ແລະມັນຖືກຕັ້ງໄວ້ລ່ວງໜ້າໃນກ່ອງປ້ອນຂໍ້ມູນ:
Delimiter = InputBox("Specify the delimiter that separates values in a cell", "Delimiter", ", ")
ໃນລະຫັດຂອງເຈົ້າ, ທ່ານສາມາດໃຊ້ຕົວອັກສອນອື່ນໄດ້. ເປັນຕົວຂັ້ນທີ່ກຳນົດໄວ້ລ່ວງໜ້າ.
ສີ
ໂດຍຄ່າເລີ່ມຕົ້ນ, ຟັງຊັນ HighlightDupeWordsInCell ສີຊ້ຳກັນດ້ວຍສີຕົວອັກສອນສີແດງ. ສີຖືກກໍານົດຢູ່ໃນແຖວນີ້:
Cell.Characters(positionInText, Len(word)).Font.Color = vbRed
ທີ່ນີ້, vbRed ແມ່ນການຈັດລຽງຂອງສີ VBA ຄົງທີ່. ເພື່ອສະແດງ dupes ໃນສີທີ່ແຕກຕ່າງກັນ, ທ່ານສາມາດທົດແທນ vbRed ດ້ວຍຄ່າຄົງທີ່ອື່ນເຊັ່ນ vbGreen, vbYellow, vbBlue, ແລະອື່ນໆ. T ລາວບັນຊີລາຍຊື່ຂອງຄ່າຄົງທີ່ຂອງສີທີ່ສະຫນັບສະຫນູນສາມາດພົບໄດ້ທີ່ນີ້.
ນັ້ນແມ່ນ. ວິທີການເນັ້ນໃສ່ຄໍາທີ່ຊ້ໍາກັນໃນຕາລາງ Excel. ຂ້ອຍຂໍຂອບໃຈສຳລັບການອ່ານ ແລະຫວັງວ່າຈະພົບເຈົ້າໃນບລັອກຂອງພວກເຮົາໃນອາທິດໜ້າ!
ມີໃຫ້ດາວໂຫຼດ
ຕົວຢ່າງລະຫັດເພື່ອເນັ້ນໃຫ້ຊໍ້າກັນໃນຕາລາງ (ໄຟລ໌ .xlsm)
ສຸດຍອດ ຊຸດ 14 ວັນທີ່ເຮັດວຽກເຕັມຮູບແບບ (ໄຟລ໌ .exe)