ວິທີການໃຊ້ຟັງຊັນ InStr ໃນ VBA (3 ຕົວຢ່າງງ່າຍໆ)

  • ແບ່ງປັນນີ້
Hugh West

ໃນຂະນະທີ່ເຮັດວຽກກັບລະຫັດ Excel VBA, ພວກເຮົາພົບຟັງຊັນທີ່ສ້າງຂຶ້ນໃນຈໍານວນຫນ້ອຍທີ່ປ່ຽນວຽກທີ່ຊັບຊ້ອນໃຫ້ເປັນລະຫັດແຖວນ້ອຍໆ. InStr ແມ່ນຟັງຊັນດັ່ງກ່າວທີ່ມີຢູ່ໃນ Excel VBA ທີ່ຊອກຫາສະຕຣິງສະເພາະພາຍໃນສະຕຣິງອື່ນທີ່ໃຫ້ໂດຍເລີ່ມຈາກຕຳແໜ່ງທີ່ໃຫ້ໄວ້. ມື້​ນີ້​ຂ້າ​ພະ​ເຈົ້າ​ຈະ​ສະ​ແດງ​ໃຫ້​ເຫັນ​ວິ​ທີ​ການ​ທີ່​ທ່ານ​ສາ​ມາດ​ນໍາ​ໃຊ້ InStr function ໃນ VBA ເພື່ອ​ຊອກ​ຫາ​ສະ​ຕ​ຣິ​ງ​ສະ​ເພາະ​ພາຍ​ໃນ​ສະ​ຕ​ຣິ​ງ​ທີ່​ໃຫ້​ອື່ນ.

ດາວ​ນ​໌​ໂຫລດ​ປື້ມ​ບັນ​ທຶກ​ການ​ປະ​ຕິ​ບັດ

InStr Function.xlsm

ແນະນໍາ ຟັງຊັນ VBA InStr

  • ສະຫຼຸບ

ຊອກຫາສະຕຣິງສະເພາະພາຍໃນສະຕຣິງທີ່ໃຫ້, ເລີ່ມຈາກຕຳແໜ່ງທີ່ໃຫ້ໄວ້. ຖ້າພົບການຈັບຄູ່, ໃຫ້ສົ່ງຄືນຕຳແໜ່ງໃນສະຕຣິງທີ່ໃຫ້ມາຈາກບ່ອນທີ່ການຈັບຄູ່ເລີ່ມຕົ້ນ.

  • Syntax

InStr([start ],string1,string2,[compare])

  • ອາກິວເມັນ
<14 <14
ARGUMENT ຄວາມຕ້ອງການ ລາຍລະອຽດ

[start] ທາງເລືອກ ຕຳແໜ່ງທີ່ມັນຈະເລີ່ມຊອກຫາ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 1.
string1 ຕ້ອງການ ສະຕຣິງທີ່ມັນຊອກຫາສະຕຣິງທີ່ໃຫ້ມາ.
string2 ຕ້ອງການ ສະຕຣິງທີ່ມັນຊອກຫາພາຍໃນສະຕຣິງໃດໜຶ່ງ.
[ປຽບທຽບ] ທາງເລືອກ ຄ່າຕົວເລກລະຫວ່າງ {-1,0,1,2} ທີ່ລະບຸປະເພດຂອງການປຽບທຽບ. ໄດ້ຄ່າເລີ່ມຕົ້ນແມ່ນ -1 (vbUseCompareOption). ຖ້າຄໍາຖະແຫຼງການປຽບທຽບທາງເລືອກບໍ່ໄດ້ຖືກລະບຸ, ປະຕິບັດການປຽບທຽບຄູ່. [start] argument ແລະ [compare] argument ເປັນທາງເລືອກ, ທ່ານຕ້ອງການ argument [start] ຖ້າເຈົ້າລະບຸອາກິວເມັນ [compare] . ຖ້າບໍ່ດັ່ງນັ້ນ, ມັນຈະເກີດຄວາມຜິດພາດຂຶ້ນ.
  • ຖ້າອັນໃດນຶ່ງ ຫຼືທັງສອງຂອງ [start] argument ແລະ [compare] argument ແມ່ນ Null , ເຈົ້າຈະປະເຊີນກັບຄວາມຜິດພາດ. ພວກມັນຖືກກ່າວເຖິງຢູ່ລຸ່ມນີ້:
  • ຄ່າ ຄົງທີ່ DESCRIPTION

    -1 vbUseCompareOption ປະຕິບັດການປຽບທຽບທີ່ລະບຸໄວ້ໃນ the Option Compare statement.
    0 vbBinaryCompare ເຮັດການປຽບທຽບ Binary.
    1 vbTextCompare ເຮັດການປຽບທຽບຂໍ້ຄວາມ.
    2 vbDatabaseCompare ເຮັດການປຽບທຽບໂດຍອີງໃສ່ຖານຂໍ້ມູນຂອງທ່ານ .
    • ທາງເລືອກປຽບທຽບ ຖະແຫຼງການແມ່ນຄຳຖະແຫຼງທີ່ສະໜອງໃຫ້ກ່ອນທີ່ລະຫັດ VBA ຫຼັກເລີ່ມຕົ້ນ. ມັນກຳນົດວ່າລະຫັດຈະຊອກຫາການປຽບທຽບຖານສອງ ຫຼືການປຽບທຽບຂໍ້ຄວາມເມື່ອຕ້ອງການຫຼືບໍ່.

    ທາງເລືອກປຽບທຽບຂໍ້ຄວາມ

      • ໃນຄໍາສັບທີ່ງ່າຍດາຍ , ການປຽບທຽບ Binary ຫມາຍເຖິງຕົວພິມນ້ອຍການປຽບທຽບ.
      • ໃນຄໍາສັບທີ່ງ່າຍດາຍ , ການປຽບທຽບຂໍ້ຄວາມ ຫມາຍເຖິງການປຽບທຽບຕົວພິມນ້ອຍໃຫຍ່. 2>
        • ສົ່ງຄືນຕຳແໜ່ງໃນ string1 ຈາກທີ່ string2 ເລີ່ມຕົ້ນ.
        • ໃນກໍລະນີທີ່ບໍ່ພົບ string2 ພາຍໃນ string1 ໂດຍເລີ່ມຈາກຕຳແໜ່ງ start , ໃຫ້ກັບຄືນ 0.
        • ຖ້າ string1 ມີຄວາມຍາວສູນ, ໃຫ້ກັບຄືນ 0.
        • ຖ້າ string2 ມີຄວາມຍາວສູນ, ໃຫ້ສົ່ງຄືນອາກິວເມັນ start .
        • ແລະສຸດທ້າຍ, ຖ້າອັນໃດນຶ່ງຂອງ string1 ຫຼື string2 ແມ່ນ Null , ສົ່ງຄືນຄວາມຜິດພາດ. ໃນພາກນີ້, ພວກເຮົາຈະເຫັນສາມຕົວຢ່າງງ່າຍໆຂອງການໃຊ້ຟັງຊັນ VBA InStr ໃນ Excel. ມາເບິ່ງຕົວຢ່າງທຳອິດຂອງຟັງຊັນ InStr ໃນລະຫັດ VBA.

          1. ການ​ຕັດ​ສິນ​ໃຈ​ວ່າ​ທີ່​ຢູ່​ເປັນ​ທີ່​ຢູ່​ອີ​ເມວ​ຫຼື​ບໍ່ ໂດຍ​ການ​ນໍາ​ໃຊ້ VBA InStr Function

          ຢູ່​ທີ່​ນີ້​, ພວກ​ເຮົາ​ໄດ້​ເອົາ​ຊຸດ​ຂໍ້​ມູນ​ທີ່​ມີ​ທີ່​ຢູ່​ຕິດ​ຕໍ່​ຂອງ​ລູກ​ຄ້າ​ຈໍາ​ນວນ​ຫນຶ່ງ​. ເປົ້າຫມາຍຂອງພວກເຮົາຢູ່ທີ່ນີ້ແມ່ນເພື່ອກໍານົດວ່າທີ່ຢູ່ແມ່ນທີ່ຢູ່ອີເມວຫຼືບໍ່.

          ຕອນນີ້ພວກເຮົາຈະພັດທະນາລະຫັດ VBA ໂດຍໃຊ້ຟັງຊັນ InStr ເພື່ອກໍານົດ. ບໍ່ວ່າຈະເປັນທີ່ຢູ່ອີເມວຫຼືບໍ່. ເພື່ອເຮັດສິ່ງນີ້, ປະຕິບັດຕາມຂັ້ນຕອນຂ້າງລຸ່ມນີ້.

          ຂັ້ນຕອນ:

          • ໃນຕອນເລີ່ມຕົ້ນ, ໄປທີ່ແຖບ ຜູ້ພັດທະນາ ແລະເລືອກ Visual Basic (ຫຼືກົດ Alt+F11) ເພື່ອເປີດ VBA ປ່ອງຢ້ຽມ.

          • ຈາກນັ້ນ, ໃນປ່ອງຢ້ຽມ VBA , ໃຫ້ໄປທີ່ ແຊກ > ໂມດູນ .

          • ຫຼັງຈາກນັ້ນ, ໃນໂມດູນ, ວາງລະຫັດຕໍ່ໄປນີ້:
          2496

          <27

          • ນອກຈາກນັ້ນ, ພວກເຮົາໄດ້ສ້າງຟັງຊັນທີ່ເອີ້ນວ່າ ການຕັດສິນໃຈ . ມັນຕັດສິນໃຈວ່າທີ່ຢູ່ເປັນທີ່ຢູ່ອີເມວຫຼືບໍ່. ມາໃຊ້ຟັງຊັນກັບຊຸດຂໍ້ມູນທີ່ເຮົາມີ.
          • ໃນເຊລ C5 , ໃຫ້ຂຽນສູດຄຳນວນຕໍ່ໄປນີ້ ແລ້ວຕື່ມຂໍ້ມູນສ່ວນທີ່ເຫຼືອຂອງເຊວອັດຕະໂນມັດໂດຍໃຊ້ Fill Handle .
          =DECISION(B5)

          • ດັ່ງທີ່ພວກເຮົາສາມາດເຫັນໄດ້, ພວກເຮົາໄດ້ລະບຸແຕ່ລະທີ່ຢູ່ບໍ່ວ່າຈະເປັນທີ່ຢູ່ອີເມວ ຫຼືບໍ່.

          🎓 ລະຫັດເຮັດວຽກແນວໃດ?

          • Function DECISION(string1 As String)

          ທຳອິດ, ອັນນີ້ສ້າງຟັງຊັນທີ່ເອີ້ນວ່າ DECISION ດ້ວຍ string argument ຊື່ວ່າ string1 .

          • Dim Position As Integer

          ມັນປະກາດຕົວແປຈຳນວນເຕັມທີ່ມີຊື່ວ່າ Position .

          • Position = InStr(1, string1, “@”, 0)

          ນີ້ກຳນົດຄ່າຂອງ ຕຳແໜ່ງ ຕົວແປເປັນຜົນອອກຂອງຟັງຊັນ InStr ພ້ອມກັບອາກິວເມັນ 1, string1, “@” ແລະ 0 . ໃນສັ້ນ, ນີ້ກໍານົດຕໍາແຫນ່ງຢູ່ໃນທີ່ຢູ່ທີ່ມີ “@” .

          • ຖ້າຕໍາແຫນ່ງ = 0 ຫຼັງຈາກນັ້ນ DECISION = “ບໍ່ແມ່ນອີເມວ”

          ມັນມອບໝາຍຜົນໄດ້ຮັບຂອງ ການຕັດສິນໃຈ ຟັງຊັນເປັນ “ບໍ່ແມ່ນອີເມວ” , ຖ້າ ຕຳແໜ່ງ ຕົວແປແມ່ນ 0 , ນັ້ນໝາຍຄວາມວ່າ, ບໍ່ມີ “@” ຢູ່ໃນທີ່ຢູ່.

          (ຈື່ໄວ້ຖ້າບໍ່ພົບສະຕຣິງໃດນຶ່ງຢູ່ໃນສະຕຣິງທີ່ໃຫ້ໄວ້, InStr function returns 0 ).

          • Else DECISION = “Email”

          ນີ້ກຳນົດໃຫ້ ຜົນຜະລິດຂອງ ການຕັດສິນໃຈ ຟັງຊັນເປັນ “ອີເມລ” ຖ້າມີ “@” ໃນທີ່ຢູ່. ດັ່ງນັ້ນທີ່ຢູ່ທີ່ມີ “@” ຖືກຈັດປະເພດເປັນ ອີເມລ໌ , ແລະສ່ວນທີ່ເຫຼືອແມ່ນຈັດປະເພດເປັນ “ບໍ່ແມ່ນອີເມວ” .

          ການອ່ານທີ່ຄ້າຍຄືກັນ

          • ວິທີໃຊ້ຟັງຊັນ VBA UCASE ໃນ Excel (4 ຕົວຢ່າງ)
          • ໃຊ້ຟັງຊັນ MsgBox ໃນ Excel VBA (ຂໍ້ແນະນຳທີ່ສົມບູນ)
          • ວິທີໃຊ້ຟັງຊັນ VBA SPLIT ໃນ Excel (5 ຕົວຢ່າງ)
          • ໃຊ້ຟັງຊັນ LCase ໃນ VBA ໃນ Excel (ດ້ວຍ 4 ຕົວຢ່າງ)
          • ວິທີໃຊ້ Fix Function ໃນ Excel VBA (4 ຕົວຢ່າງ)

          2. ການ​ນໍາ​ໃຊ້​ຟັງ​ຊັນ VBA InStr ສໍາ​ລັບ ການ​ສະ​ກັດ​ອອກ​ສ່ວນ​ຂະ​ຫຍາຍ​ຂອງ​ທີ່​ຢູ່​ອີ​ເມວ​ຈໍາ​ນວນ​ຫນຶ່ງ

          ຢູ່​ທີ່​ນີ້​, ພວກ​ເຮົາ​ມີ​ລາຍ​ຊື່​ຂອງ​ທີ່​ຢູ່​ອີ​ເມວ​ຂອງ​ລູກ​ຄ້າ​ຈໍາ​ນວນ​ຫນຶ່ງ​. ຄັ້ງນີ້ພວກເຮົາຈະແຍກສ່ວນຂະຫຍາຍຂອງທີ່ຢູ່ອີເມວເຊັ່ນວ່າພວກເຂົາມີ gmail.com ຫຼື yahoo.com .

          . ເພື່ອເຮັດສິ່ງນັ້ນ, ໃຫ້ປະຕິບັດຕາມຂັ້ນຕອນຂ້າງລຸ່ມນີ້.

          ຂັ້ນຕອນ:

          • ເພື່ອເລີ່ມຕົ້ນດ້ວຍວິທີທີ່ຜ່ານມາ, ເປີດ VBA<2 ໃໝ່> module ແລະວາງລະຫັດຕໍ່ໄປນີ້ໃນປ່ອງຢ້ຽມ. ສ່ວນຂະຫຍາຍ . ມັນສະກັດສ່ວນຂະຫຍາຍຂອງທີ່ຢູ່ອີເມວໃດໆ.
          • ນອກນັ້ນ, ໃຫ້ໃຊ້ຟັງຊັນນີ້ກັບຊຸດຂໍ້ມູນທີ່ພວກເຮົາມີ. ທຳອິດ, ໃຫ້ໃສ່ສູດນີ້ໃສ່ຕາລາງ C5 ແລະຫຼັງຈາກນັ້ນໃຫ້ຄລິກສອງເທື່ອໃສ່ Fill Handle .
          =EXTENSION(B5)

          • ສຸດທ້າຍ, ພວກເຮົາສາມາດເຫັນໄດ້ວ່າພວກເຮົາໄດ້ແຍກສ່ວນຂະຫຍາຍຂອງອີເມວທັງໝົດສຳເລັດແລ້ວ.

          🎓 ລະຫັດເຮັດວຽກແນວໃດ?

          • Function EXTENSION(Email As String)

          ອັນນີ້ສ້າງຟັງຊັນໃໝ່ທີ່ເອີ້ນວ່າ EXTENSION , ພ້ອມກັບ string argument ຊື່ວ່າ Email .

          • Dim Position As Integer

          ສ່ວນນີ້ປະກາດຕົວແປຈຳນວນເຕັມທີ່ມີຊື່ວ່າ Position .

          • Position = InStr(1, Email, “@”, 0)

          ນີ້ກຳນົດຄ່າຂອງ Position variable as output of the InStr function with the arguments 1, Email, “@” and 0 . ໃນສັ້ນ, ນີ້ກຳນົດຕຳແໜ່ງໃນ ອີເມລ໌ ບ່ອນທີ່ມີ “@” .

          • EXTENSION = ສິດ(ອີເມລ, (Len (ອີເມລ) – ຕຳແໜ່ງ))

          ສ່ວນນີ້ກຳນົດຜົນອອກມາຂອງຟັງຊັນ EXTENSION ເປັນຕົວລະຄອນຫຼັງສັນຍາລັກ “@” . ນີ້ແມ່ນສ່ວນຂະຫຍາຍທີ່ຕ້ອງການຂອງ ອີເມວ .

          3. ການສະກັດເອົານາມສະກຸນ ຫຼືນາມສະກຸນອອກຈາກຊື່ ໂດຍການໃຊ້ຟັງຊັນ VBA InStr

          ສຸດທ້າຍ, ພວກເຮົາຈະປະຕິບັດໜ້າທີ່ທີ່ແຕກຕ່າງກັນຢ່າງເປັນເອກະລັກ. ເວລານີ້ພວກເຮົາມີຊື່ຂອງພະນັກງານຈໍານວນຫນຶ່ງຂອງບໍລິສັດ. ແລະພວກເຮົາຈະພະຍາຍາມສ້າງຟັງຊັນເພື່ອແຍກຊື່ ຫຼືນາມສະກຸນຂອງພະນັກງານ.

          ເພື່ອເຮັດແນວນັ້ນ, ໃຫ້ເຮັດຕາມຂັ້ນຕອນຂ້າງລຸ່ມນີ້.

          ຂັ້ນຕອນ:

          • ທຳອິດ, ຄ້າຍກັບ ວິທີ 1 , ວາງລະຫັດລຸ່ມນີ້ໃນໂມດູນໃໝ່ໃນໜ້າຕ່າງ VBA.
          5464

          • ຢູ່ນີ້, ພວກເຮົາໄດ້ສ້າງຟັງຊັນທີ່ເອີ້ນວ່າ SHORTNAME ທີ່ແຍກຊື່ ຫຼືນາມສະກຸນອອກຈາກຊື່. ມາໃຊ້ສູດນີ້ໃສ່ຊຸດຂໍ້ມູນຂອງພວກເຮົາ.
          • ທຳອິດ, ເພື່ອແຍກຊື່ອອກ, ໃຫ້ຂຽນສູດຄຳນວນລຸ່ມນີ້ໃນຕາລາງ C5 .
          <7 =SHORTNAME(B5,-1)

          • ສຸດທ້າຍ, ເພື່ອແຍກນາມສະກຸນ, ພວກເຮົາຂຽນສູດຄຳນວນຕໍ່ໄປນີ້ໃນ D5 :
          =SHORTNAME(B5,1)

          • ຫຼັງຈາກນັ້ນ, ຖ້າພວກເຮົາຕື່ມຂໍ້ມູນສ່ວນທີ່ເຫຼືອຂອງເຊວໂດຍອັດຕະໂນມັດດ້ວຍ Fill Handler , ພວກເຮົາຈະເຫັນຜົນທີ່ຕ້ອງການຂອງພວກເຮົາ.

          🎓 ລະຫັດເຮັດວຽກແນວໃດ?

          • ຟັງຊັນ SHORTNAME(ຊື່ເປັນ String, First_or_Last As Integer)

          ມັນສ້າງຟັງຊັນໃໝ່ທີ່ເອີ້ນວ່າ SHORTNAME ກັບນຶ່ງ String argument ທີ່ມີຊື່ວ່າ Name ແລະ Integer Argument ນຶ່ງຊື່ First_or_Last .

          • Dim Break as Integer

          ສ່ວນນີ້ປະກາດຕົວແປຈຳນວນເຕັມໃໝ່ທີ່ມີຊື່ວ່າ Break .

          • Break = InStr(1, Name, ” “, 0)

          ມັນກຳນົດຄ່າຂອງຕົວແປ Break ເປັນຜົນຜະລິດຂອງຟັງຊັນ InStr ກັບ arguments 1, ຊື່, “ ” ແລະ 0 . ໃນສັ້ນ, ນີ້ກຳນົດຕຳແໜ່ງໃນ ຊື່ ບ່ອນທີ່ມີ ຍະຫວ່າງ (“ ”).

          • ຖ້າ First_or_Last = -1 ຫຼັງຈາກນັ້ນ. SHORTNAME = ຊ້າຍ(ຊື່, ແຍກ – 1)

          ແຖວນີ້ມອບໝາຍຜົນໄດ້ຮັບຂອງຟັງຊັນ SHORTNAME ເປັນຕົວອັກສອນກ່ອນໜ້າ ຍະຫວ່າງ , ຖ້າອາກິວເມັນ First_or_Last ແມ່ນ -1. ນີ້ແມ່ນຊື່ທຳອິດ.

          • SHORTNAME = ຂວາ(ຊື່, ເລນ(ຊື່) – ແຍກ)

          ສ່ວນນີ້ກຳນົດຜົນຜະລິດຂອງ SHORTNAME ຟັງຊັນເປັນຕົວອັກສອນຫຼັງຈາກ space , ຖ້າອາກິວເມັນ First_or_Last ແມ່ນ 1. ນີ້ແມ່ນນາມສະກຸນ.

          ບົດສະຫຼຸບ

          ດ້ວຍວິທີນີ້, ທ່ານສາມາດຂຽນລະຫັດ VBA ດ້ວຍຟັງຊັນ InStr ເຊິ່ງຊອກຫາຕຳແໜ່ງຂອງສະຕຣິງສະເພາະພາຍໃນອັນອື່ນທີ່ໃຫ້ໄວ້. string, ແລະຫຼັງຈາກນັ້ນທ່ານສາມາດສ້າງຫນ້າທີ່ຂອງທ່ານເອງສໍາລັບການນໍາໃຊ້ທີ່ຫລາກຫລາຍ. ນອກຈາກນັ້ນ, ຖ້າທ່ານມີຄໍາຖາມໃດໆ, ກະລຸນາຖາມພວກເຮົາ.

    Hugh West ເປັນຄູຝຶກ Excel ທີ່ມີປະສົບການສູງແລະນັກວິເຄາະທີ່ມີປະສົບການຫຼາຍກວ່າ 10 ປີໃນອຸດສາຫະກໍາ. ລາວຈົບປະລິນຍາຕີສາຂາບັນຊີ ແລະການເງິນ ແລະປະລິນຍາໂທສາຂາບໍລິຫານທຸລະກິດ. Hugh ມີຄວາມກະຕືລືລົ້ນໃນການສອນແລະໄດ້ພັດທະນາວິທີການສອນທີ່ເປັນເອກະລັກທີ່ງ່າຍຕໍ່ການຕິດຕາມແລະເຂົ້າໃຈ. ຄວາມຮູ້ຊ່ຽວຊານຂອງລາວກ່ຽວກັບ Excel ໄດ້ຊ່ວຍໃຫ້ນັກຮຽນແລະຜູ້ຊ່ຽວຊານຫລາຍພັນຄົນໃນທົ່ວໂລກປັບປຸງທັກສະຂອງເຂົາເຈົ້າແລະດີເລີດໃນອາຊີບຂອງພວກເຂົາ. ຜ່ານ blog ຂອງລາວ, Hugh ແບ່ງປັນຄວາມຮູ້ຂອງລາວກັບໂລກ, ສະຫນອງການສອນ Excel ຟຣີແລະການຝຶກອົບຮົມອອນໄລນ໌ເພື່ອຊ່ວຍໃຫ້ບຸກຄົນແລະທຸລະກິດສາມາດບັນລຸທ່າແຮງຂອງພວກເຂົາ.