ການສອນນີ້ຈະອະທິບາຍ VBA Array, ປະເພດ array ຕ່າງໆ, variant array, ແລະ array method ດ້ວຍການຊ່ວຍຂອງການຂຽນໂປລແກລມຕົວຢ່າງ:
ຕົວແປ VBA ປົກກະຕິແມ່ນຕົວຍຶດບ່ອນເກັບຂໍ້ມູນ. ຄ່າຂອງຂໍ້ມູນດຽວ. ມັນມີຄວາມສໍາພັນ 1 ຫາ 1 ເຊັ່ນ: ຕົວແປ 1 ສໍາລັບ 1 ຄ່າ.
ຕອນນີ້ຈິນຕະນາການເກັບຮັກສາຫຼາຍຄ່າທີ່ເປັນປະເພດດຽວກັນ. ແທນທີ່ຈະສ້າງຕົວແປຫຼາຍອັນ, ທ່ານພຽງແຕ່ສາມາດສ້າງຕົວແປຫນຶ່ງແລະເກັບຮັກສາປະເພດດຽວກັນຂອງຄ່າທັງຫມົດ. ຕົວແປນີ້ເອີ້ນວ່າ ARRAY.
ໃນບົດສອນນີ້, ທ່ານຈະໄດ້ຮັບຮູ້ວ່າອັນໃດເປັນ VBA array, one-dimensional, and two-dimensional arrays along with the different types of arrays like Fixed and Dynamic. ພວກເຮົາຍັງຈະເຂົ້າໃຈວິທີການ array ຕ່າງໆທີ່ໃຊ້ໃນ VBA.
VBA Array
Arrays ເປັນຕົວແປພິເສດທີ່ສາມາດເກັບຄ່າຫຼາຍຄ່າຂອງປະເພດຂໍ້ມູນດຽວກັນ. .
ຕົວຢ່າງ, ຖ້າທ່ານມີຊື່ຂອງພະນັກງານ 100 ຄົນ, ຫຼັງຈາກນັ້ນແທນທີ່ຈະສ້າງ 100 ຕົວແປຂອງ string ປະເພດຂໍ້ມູນ, ທ່ານພຽງແຕ່ສາມາດສ້າງຕົວແປ array ຂອງ type string ແລະກໍານົດ 100 ຄ່າ. ກັບຕົວແປ array ດຽວກັນ.
One Dimensional Array
Array ທີ່ມີອົງປະກອບທັງໝົດຢູ່ໃນແຖວດຽວ ຫຼືໃນຖັນດຽວ ເອີ້ນວ່າ Array ມິຕິໜຶ່ງ. ລາຍຊື່ນັກຮຽນທັງໝົດໃນຫ້ອງຮຽນໃນຖັນດຽວແມ່ນຕົວຢ່າງຂອງອາເຣໜຶ່ງມິຕິ. ມັນໄດ້ຖືກປະກາດເປັນສະແດງໃຫ້ເຫັນarray ຖືກປະກາດຕາມຮູບຂ້າງລຸ່ມນີ້.
Dim ArrayName(FirstIndex To LastIndex, FirstIndex to LastIndex) As DataType.
ຕົວຢ່າງ: Dim marks(1 ເຖິງ 3 , 0 ເຖິງ 2) ເປັນ Integer
Q #3) ວິທີການປ່ຽນ Range ເປັນ Array?
ຄຳຕອບ: ພວກເຮົາສາມາດໃຊ້ຟັງຊັນ Transpose ໄດ້. ເພື່ອປ່ຽນໄລຍະເປັນ array. ລະຫັດນີ້ຈະສ້າງ Mys[10]
Sub Example() Dim Mys As Variant Mys = Application.Transpose(Range("A1:A10")) End Sub
Q #4) array variant ໃນ VBA ແມ່ນຫຍັງ?
ຄໍາຕອບ: array variant ຈະຍອມຮັບທຸກປະເພດຂໍ້ມູນສໍາລັບດັດຊະນີຂອງມັນເຊັ່ນ: ທ່ານສາມາດເກັບຄ່າປະເພດຕ່າງໆໃນ array ດຽວ.
ຕົວຢ່າງ:
Dim arrayData(3) As Variant
arrayData(0) = “Vikas Vipal”
arrayData(1) = 411234567890#
ວິທີປັບຂະໜາດອາເຣໃນລະຫວ່າງ runtime ແລະຍັງຮັກສາຄຸນຄ່າໂດຍໃຊ້ redim preserve ໄດ້ຖືກສົນທະນາກັບຕົວຢ່າງ. ສຸດທ້າຍ, ພວກເຮົາໄດ້ຮຽນຮູ້ວິທີການ Array ທີ່ຈະຊ່ວຍໃຫ້ພວກເຮົາປະຕິບັດການດໍາເນີນການຫຼາຍຢ່າງ.
ຢູ່ລຸ່ມນີ້.Dim arrayname(lowerbound to UpperBound) As DataType
ມີຫຼາຍວິທີໃນການປະກາດ array. ຕໍ່ໄປນີ້ແມ່ນບາງຕົວຢ່າງ.
ຕົວຢ່າງ:
#1) Dim MyArrayExample(0 ຫາ 3) ເປັນຈໍານວນເຕັມ
ສ້າງ array ທີ່ມີສະຖານທີ່ 0,1,2,3 ທີ່ຈະຮັບຄ່າ Integer.
#2) Dim MyArray2(3) As String
ຄ່າເລີ່ມຕົ້ນຈາກ 0. ເປັນ 3 ແລະສ້າງ array ທີ່ມີສະຖານທີ່ 0,1,2,3 ທີ່ຈະຍອມຮັບຄ່າ String.
#3) Dim MyArray2(13 ຫາ 15) ເປັນສອງເທົ່າ
ສ້າງ array ເລີ່ມຈາກ 13 i.e. 13, 14, ແລະ 15, ແລະຍອມຮັບຄ່າສອງເທົ່າ. ພວກເຮົາໄດ້ກ່າວເຖິງຂອບເຂດຕ່ໍາເປັນ 13, ດັ່ງນັ້ນ array ຈະເລີ່ມຈັດສັນຄ່າຈາກສະຖານທີ່ 13 ແທນທີ່ຈະເປັນ 0.
ໃຫ້ພວກເຮົາສ້າງລະຫັດງ່າຍໆ ແລະເຂົ້າໃຈວິທີການປະກາດ array ທັງ ໝົດ 3 ດ້ານ.
ໝາຍເຫດ: ເພື່ອຂຽນລະຫັດ VB ໃຫ້ເປີດ Microsoft Excel (ລຸ້ນທີ່ຮອງຮັບແມ່ນ Excel 2007, 2010, 2013, 2016, 2019). ໄປທີ່ Developer Tab -> Visual Basic (ທາງລັດໃຊ້ທາງລັດ Alt+F11). ໃນຕົວແກ້ໄຂ VB, ໃຫ້ຄລິກໃສ່ Insert -> Module ແລະວາງລະຫັດຂ້າງລຸ່ມນີ້.
ພິຈາລະນາຂັ້ນຕອນຂ້າງລຸ່ມນີ້ສະແດງໃຫ້ເຫັນປະເພດຕ່າງໆຂອງການປະກາດ.
Private Sub arrayExample1() Dim firstQuarter(0 To 2) As String ‘creates array with index 0,1,2 firstQuarter(0) = "Jan" firstQuarter(1) = "Feb" firstQuarter(2) = "Mar" MsgBox "First Quarter in calendar " & " " & firstQuarter(0) & " " & firstQuarter(1) & " " & firstQuarter(2) End Sub Private Sub arrayExample2() Dim secondQuarter(2) As String ‘creates array with index 0,1,2 secondQuarter(0) = "April" secondQuarter(1) = "May" secondQuarter(2) = "June" MsgBox "Second Quarter in calendar " & " " & secondQuarter(0) & " " & secondQuarter(1) & " " & secondQuarter(2) End Sub Private Sub arrayExample3() Dim thirdQuarter(13 To 15) As String ‘creates array with index 13,14,15 thirdQuarter(13) = "July" thirdQuarter(14) = "Aug" thirdQuarter(15) = "Sep" MsgBox "Third Quarter in calendar " & " " & thirdQuarter(13) & " " & thirdQuarter(14) & " " & thirdQuarter(15) End Sub
ກົດ F5 ຫຼືກົດປຸ່ມແລ່ນໃນແຖບເຄື່ອງມື ເພື່ອປະຕິບັດລະຫັດ.
ຕົວແປປົກກະຕິ Vs ຕົວແປອາເຣ
ຕອນນີ້ພວກເຮົາຮູ້ວິທີການເຮັດວຽກຂອງອາເຣໜຶ່ງມິຕິ. ສະນັ້ນໃຫ້ໃຊ້ເວລາຄາວໜຶ່ງເພື່ອເຂົ້າໃຈວ່າເປັນຫຍັງ arrays ຈຶ່ງມີຄວາມສຳຄັນຫຼາຍໃນພາສາການຂຽນໂປລແກລມ.
ສົມມຸດວ່າທ່ານຕ້ອງການໃສ່ເງິນເດືອນຂອງພະນັກງານ 5 ຄົນ. ເພື່ອບັນລຸສິ່ງນີ້ໂດຍໃຊ້ຕົວແປປົກກະຕິ, ທ່ານຈໍາເປັນຕ້ອງສ້າງ 5 ຕົວແປ.
Public Sub RegularVariable() Dim shet As Worksheet Set shet = ThisWorkbook.Worksheets("Sheet1") ' Declare variable for each student Dim Emp1 As String Dim Emp2 As String Dim Emp3 As String Dim Emp4 As String Dim Emp5 As String ' Read student marks from cell Emp1 = shet.Range("A" & 2).Value Emp2 = shet.Range("A" & 3).Value Emp3 = shet.Range("A" & 4).Value Emp4 = shet.Range("A" & 5).Value Emp5 = shet.Range("A" & 6).Value ' Print student marks Debug.Print "Emp Name" Debug.Print Emp1 Debug.Print Emp2 Debug.Print Emp3 Debug.Print Emp4 Debug.Print Emp5 End Sub
ຕອນນີ້ໃຫ້ພວກເຮົາສ້າງລະຫັດດຽວກັນໂດຍໃຊ້ຕົວແປ Array.
Option Explicit Public Sub ArrayVarible() Dim shet As Worksheet Set shet = ThisWorkbook.Worksheets("Sheet1") Dim Employee(1 To 6) As String Dim i As Integer For i = 1 To 6 Employee(i) = shet.Range("A" & i).Value Debug.Print Employee(i) Next i End Sub
ທີ່ນີ້, ພວກເຮົາໄດ້ໃຊ້ຕົວແປ array ອັນດຽວທີ່ຈະເກັບຮັກສາຊື່ພະນັກງານທັງຫມົດ. ສົມມຸດວ່າທ່ານຕ້ອງການເພີ່ມ 100 ຊື່ພະນັກງານຫຼັງຈາກນັ້ນທ່ານພຽງແຕ່ຕ້ອງການປ່ຽນຂະຫນາດ array ແລະບໍ່ຈໍາເປັນຕ້ອງສ້າງຕົວແປໃຫມ່.
ນີ້ຈະຫຼຸດລົງຈໍານວນແຖວໃນລະຫັດແລະເຮັດໃຫ້ມັນງ່າຍດາຍ. ເຂົ້າໃຈໄດ້ ແລະສາມາດອ່ານໄດ້.
array ສອງມິຕິ
A array 2 ມິຕິລະດັບມີ 2 indexes – ດັດຊະນີທຳອິດຈະເປັນຕົວແທນຂອງແຖວ ແລະ ດັດຊະນີທີ 2 ຈະເປັນຕົວແທນຂອງຖັນ. ມັນມີຫຼາຍແຖວ ແລະຖັນ ແລະປົກກະຕິແລ້ວແມ່ນສະແດງຢູ່ໃນຮູບແບບຕາຕະລາງ.
ການປະກາດຂອງ 2 dim array ມີດັ່ງນີ້:
Dim ArrayName(FirstIndex ໄປຫາ LastIndex, FirstIndex ເຖິງ LastIndex) ເປັນປະເພດຂໍ້ມູນ.
ພິຈາລະນາຕົວຢ່າງຂອງການເກັບເຄື່ອງໝາຍຂອງນັກຮຽນ 2 ຄົນທີ່ໄດ້ຮັບໃນ 3 ວິຊາ. ດັ່ງນັ້ນພວກເຮົາຈະສ້າງ array 2 ມິຕິທີ່ໃຊ້ເວລາ 2 ແຖວແລະ 3 ຖັນ.
ພວກເຮົາຈະເລີ່ມອາເຣຈາກແຖວທີ 1 ຫາແຖວທີ 2 ແລະຖັນທີ 1 ຫາຖັນທີ 3.
Sub Twodim() Dim totalMarks(1 To 2, 1 To 3) As Integer totalMarks(1, 1) = 23 totalMarks(2, 1) = 34 totalMarks(1, 2) = 33 totalMarks(2, 2) = 55 totalMarks(1, 3) = 45 totalMarks(2, 3) = 44 Msgbox “Total Marks in Row 2 and column 2 is “ &totalMarks(2,2) Msgbox “Total Marks in Row 1 and column 3 is “ &totalMarks(1,3) End Sub
ກົດ F5. ຫຼືກົດປຸ່ມແລ່ນຢູ່ແຖບເຄື່ອງມືເພື່ອປະຕິບັດລະຫັດ.
ແຖວທີ 2 ແລະຖັນ 2
ແຖວທີ 1 ແລະຖັນ 3
Fixed Arrays
Fixed Arrays ຍັງເອີ້ນວ່າ StaticArrays ມີຂອບເຂດຕ່ໍາແລະຂອບເຂດເທິງຄົງທີ່ແລະຂະຫນາດນີ້ບໍ່ສາມາດປ່ຽນແປງໄດ້ໃນເວລາແລ່ນ. ຂະໜາດຂອງອາເຣແມ່ນລະບຸໃນລະຫວ່າງການປະກາດພາຍໃນວົງເລັບ. ຕົວຢ່າງຂ້າງເທິງທັງໝົດແມ່ນ Fixed arrays ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວເຖິງຂະໜາດຂອງມັນໃນລະຫວ່າງການປະກາດ. ຕົວຢ່າງ, ຈຳນວນມື້ໃນໜຶ່ງອາທິດ, ທ່ານສາມາດສ້າງ array ທີ່ມີຂອບລຸ່ມ 0 ແລະ ຂອບເຂດເທິງ 6 ແລະໃຫ້ແນ່ໃຈວ່າທ່ານຈະບໍ່ມີການປ່ຽນແປງຂະໜາດຂອງມັນ.
Dynamic Arrays
Dynamic Arrays ອະນຸຍາດໃຫ້ພວກເຮົາປັບຂະໜາດອາເຣໃນລະຫວ່າງເວລາແລ່ນ. ເຫຼົ່ານີ້ແມ່ນເປັນປະໂຫຍດໃນເວລາທີ່ທ່ານບໍ່ແນ່ໃຈວ່າກ່ຽວກັບຂະຫນາດຂອງ array ໄດ້. ສົມມຸດວ່າການເຂົ້າມະຫາວິທະຍາໄລ, ທ່ານອາດຈະບໍ່ແນ່ໃຈວ່າມີນັກຮຽນຫຼາຍປານໃດທີ່ຈະໄດ້ເຂົ້າຮຽນ, ດັ່ງນັ້ນທ່ານບໍ່ສາມາດກໍານົດຂະຫນາດໃນເວລາອອກແບບຫຼືການປະກາດ.
ການປະກາດຂອງ array ແບບໄດນາມິກແມ່ນຄ້າຍຄືກັບ Static array ທີ່ມີວົງເລັບເປົ່າ.
Dim Employee() As String
REDIM
ເມື່ອພວກເຮົາຕ້ອງການປ່ຽນຂະໜາດ ພວກເຮົາຕ້ອງໃຊ້ REDIM , ພວກເຮົາຈໍາເປັນຕ້ອງສັງເກດວ່າຂອບເຂດຕ່ໍາບໍ່ສາມາດປ່ຽນແປງໄດ້, ພວກເຮົາສາມາດປ່ຽນຂອບເຂດເທິງຂອງອາເຣເທົ່ານັ້ນ.
Sub dynamicArray() Dim dynArray() As String Dim curdate As Date curdate = Now ReDim dynArray(2) ‘ Redim will help to change the array size during runtime dynArray(0) = "John" dynArray(1) = "Tom" dynArray(2) = "Tonny" MsgBox "Students Enrolled after " & curdate & " are “ & dynArray(0) & ", " & dynArray(1) & ", " & dynArray(2) End Sub
ດຽວນີ້, ພວກເຮົາຮູ້ວ່າພວກເຮົາສາມາດ ການປ່ຽນແປງຂະຫນາດຂອງອາເຣໃນລະຫວ່າງເວລາແລ່ນ, ດັ່ງນັ້ນພວກເຮົາສາມາດນໍາໃຊ້ຄໍາຖະແຫຼງ ReDim ທຸກຄັ້ງທີ່ພວກເຮົາຕ້ອງການເພີ່ມຂອບເຂດຂອງ array. ລອງເພີ່ມຂະໜາດອາເຣອີກຄັ້ງໜຶ່ງ ແລະເພີ່ມອັນໃໝ່ຊື່ນັກຮຽນ.
Sub RedimExample() Dim dynArray() As String Dim curdate As Date curdate = Now Dim size As Integer ReDim dynArray(2) dynArray(0) = "John" dynArray(1) = "Tom" dynArray(2) = "Tonny" MsgBox "Students Enrolled untill " & curdate & " are " & dynArray(0) & ", " & dynArray(1) & ", " & dynArray(2) ReDim dynArray(3) ‘ Redim will reinitialise the array and destroy the old values dynArray(3) = "John" MsgBox "Students Enrolled untill " & curdate & " are " & dynArray(0) & ", " & dynArray(1) & ", " & dynArray(2) & " , " & dynArray(3) End Sub
ທ່ານຄົງຈະສັງເກດເຫັນວ່າຜົນໄດ້ຮັບບໍ່ໄດ້ສະແດງຊື່ຂອງນັກຮຽນທີ່ເພີ່ມໃສ່ກ່ອນ, ມັນໃຫ້ຄ່າ null. ນັ້ນແມ່ນຍ້ອນວ່າຄໍາຖະແຫຼງການ Redim ຈະສ້າງ array ໃຫມ່ທີ່ມີຂະຫນາດໃຫມ່ແລະທໍາລາຍຄ່າເກົ່າ. ແລະເຮັດໃຫ້ຂະໜາດຂອງອາເຣ. ຄໍາສໍາຄັນທີ່ເກັບຮັກສາໄວ້, ຄ່າທີ່ໃສ່ໃນເມື່ອກ່ອນຈະບໍ່ສູນເສຍແລະມູນຄ່າໃຫມ່ໄດ້ຖືກເພີ່ມຢ່າງສໍາເລັດຜົນ.
Variant Array
ຈົນເຖິງຕອນນີ້ພວກເຮົາໄດ້ເຫັນ array ຍອມຮັບປະເພດດຽວກັນຂອງຄ່າ. ຕອນນີ້ໃຫ້ພວກເຮົາປະກາດ array ເປັນ variant ແລະເກັບຮັກສາຂໍ້ມູນປະເພດຕ່າງໆເຊັ່ນ: String, Date, Long, Integer ໃນ array ດຽວ.
ຕົວຢ່າງ:
Sub arrayVariant() Dim arrayData(3) As Variant arrayData(0) = "Vikram Vikrant" arrayData(1) = 411234567890# arrayData(2) = 38 arrayData(3) = "06-09-1972" MsgBox "Details of person " & arrayData(0) & " is " & " Phone No " & arrayData(1) & " ,Id " & arrayData(2) & " ,DOB " & arrayData(3) End Sub
ວິທີການ VBA Array
ມີຫຼາຍວິທີໃນ VBA arrays ທີ່ຈະຊ່ວຍໃຫ້ພວກເຮົາປະຕິບັດຫນ້າທີ່ແຕກຕ່າງກັນ, ດັ່ງທີ່ໄດ້ກ່າວມາຂ້າງລຸ່ມນີ້.
ສລ. ບໍ່ | ຊື່ | Syntax | ລາຍລະອຽດ |
---|---|---|---|
1 | ອາເຣ2 | Array(arglist) | ປ່ຽນຕົວແປປົກກະຕິ ຕົວແປເປັນ Array. |
2 | 26 EraseErase arrayname | ໃຊ້ເພື່ອ reintialize array ຂະຫນາດຄົງທີ່ ແລະປ່ອຍຄວາມຈໍາສໍາລັບ Dynamicarray. | |
3 | IsArray | IsArray (variablename) | ກຳນົດວ່າ a ຕົວແປເປັນອາເຣ. |
4 | Lbound | LBound( ArrayName, [Dimension] ) | ສົ່ງຄືນຄ່າຍ່ອຍຕໍ່າສຸດ ຂອງອາເຣ. |
5 | Ubound | UBound( ArrayName , [Dimension] ) | ສົ່ງຄືນຄ່າຍ່ອຍສູງສຸດ ຂອງອາເຣ. |
6 | ແຍກ | Split(expression, [ delimiter, [ limit, [ compare ]]]) | ມັນແບ່ງສະຕຣິງອອກເປັນຫຼາຍສະຕຣິງຍ່ອຍ ແລະສົ່ງຄືນອາເຣທີ່ອີງໃສ່ສູນ. |
7 | Join | Join(sourcearray, [ delimiter ]) | ເຂົ້າຮ່ວມຫຼາຍສະຕຣິງຍ່ອຍໃນ array ແລະສົ່ງຄ່າສະຕຣິງຄືນ. . |
8 | ການກັ່ນຕອງ | ການກັ່ນຕອງ(ແຫຼ່ງທີ່ມາ, ການຈັບຄູ່, [ ລວມ, [ ປຽບທຽບ ]]) | ຕົວກອງຈະອະນຸຍາດໃຫ້ພວກເຮົາຄົ້ນຫາ ການຈັບຄູ່ທີ່ລະບຸຈາກອາເຣ. |
ໃຫ້ພວກເຮົາປຶກສາຫາລືແຕ່ລະອັນຢ່າງລະອຽດດ້ວຍຕົວຢ່າງ.
#1) Array
ໃຫ້ປະກາດຕົວແປຕົວແປປົກກະຕິ ແລະໃຊ້ມັນເປັນ array. ເມື່ອທ່ານຕ້ອງການປ່ຽນຕົວແປແບບປົກກະຕິເປັນອາເຣ, ພວກເຮົາຈໍາເປັນຕ້ອງໃຊ້ຟັງຊັນ ARRAY ດັ່ງທີ່ສະແດງໃນຕົວຢ່າງຂ້າງລຸ່ມ.
ຟັງຊັນອາເຣຈະຍອມຮັບອາກິວເມັນທີ່ປະກອບດ້ວຍຄ່າທີ່ຂັ້ນດ້ວຍເຄື່ອງໝາຍຈຸດ. . ຄ່າເຫຼົ່ານີ້ຖືກມອບໝາຍເປັນອົງປະກອບຂອງອາເຣ.ດັ່ງນັ້ນໃນຕົວຢ່າງຂ້າງເທິງ, ຄ່າຕ່າງໆຈະຖືກດຶງອອກມາເປັນ varData(0) varData(2) varData(3).
#2) Erase
ຟັງຊັນນີ້ຈະລຶບທຸກຄ່າທີ່ປ້ອນໃສ່ໃນ array ຂະໜາດຄົງທີ່ ແລະຈະຂະຫຍາຍພື້ນທີ່ຄວາມຈຳໃຫ້ກັບ array ແບບໄດນາມິກ.
Syntax: Erase arrayname
Erase ມີພຶດຕິກຳທີ່ແຕກຕ່າງກັນສຳລັບຂໍ້ມູນປະເພດຕ່າງໆຕາມທີ່ລະບຸ. ຂ້າງລຸ່ມນີ້.
- ສຳລັບຕົວເລກຄົງທີ່: ຄ່າທັງໝົດຖືກຣີເຊັດເປັນສູນ.
- ສຳລັບປະເພດຂໍ້ມູນສະຕຣິງຄົງທີ່: ຄ່າທັງໝົດຖືກຣີເຊັດເປັນສູນຄວາມຍາວ.
- ສຳລັບອາເຣແບບໄດນາມິກ: ເພີ່ມຄວາມຈຳທີ່ໃຊ້ໂດຍອາເຣ.
ຕົວຢ່າງ :
Sub eraseExample() Dim NumArray(3) As Integer Dim decArray(2) As Double Dim strArray(2) As String NumArray(0) = 12345 decArray(1) = 34.5 strArray(1) = "Erase Function" Dim DynaArray() ReDim DynaArray(3) MsgBox " Values before Erase " & (NumArray(0)) & "," & (decArray(1)) & " , " & (strArray(1)) Erase NumArray Erase decArray Erase strArray Erase DynaArray ' Free the memory ' All values are erased. MsgBox " Values after Erase " & NumArray(0) & "," & decArray(1) & " , " & strArray(1) End Sub
ຜົນໄດ້ຮັບກ່ອນທີ່ຈະໃຊ້ຟັງຊັນ Erase
ຜົນໄດ້ຮັບຫຼັງຈາກໃຊ້ Erase 3
#3) IsArray
ຟັງຊັນນີ້ຖືກໃຊ້ເພື່ອກໍານົດວ່າຕົວແປທີ່ລະບຸນັ້ນເປັນ array ຫຼືບໍ່. ມັນຈະສົ່ງຄ່າເປັນ true ຖ້າຕົວແປທີ່ປ້ອນເຂົ້າເປັນຈິງ, ຖ້າບໍ່ດັ່ງນັ້ນມັນຈະສົ່ງຄືນເປັນ false.
Syntax : IsArray (variablename)
ຕົວຢ່າງ:
Sub isArrayTest() Dim arr1, arr2 As Variant arr1 = Array("Jan", "Feb", "Mar") arr2 = "12345" MsgBox ("Is arr1 an Array : " & IsArray(arr1)) MsgBox ("Is arr2 an Array : " & IsArray(arr2)) End
ຜົນໄດ້ຮັບຈາກ Msgbox ທໍາອິດ
ຜົນໄດ້ຮັບຈາກ msgbox ທີສອງ
#4) Lbound
ມັນສົ່ງຄ່າຍ່ອຍຕໍ່າສຸດຂອງອາເຣທີ່ລະບຸໄວ້ເປັນອາກິວເມັນສຳລັບຟັງຊັນ Lbound.
Syntax: LBound( ArrayName, [Dimension] )
ArrayName ແມ່ນຊື່ຂອງ array.
Dimension is the optional integer value, if the array has multiple dimensions, then you can set toຂະໜາດໃດທີ່ທ່ານຕ້ອງການກຳນົດ Lbound.
ຕົວຢ່າງ:
Sub lboundTest() Dim Result1, Result2, Result3 Dim ArrayValue(1 To 10, 5 To 15, 10 To 20) ' Declare array variables. Dim Arraywithoutlbound(10) Result1 = LBound(ArrayValue, 1) ' Returns 1. Result2 = LBound(ArrayValue, 3) ' Returns 10. Result3 = LBound(Arraywithoutlbound) MsgBox "Lowest subscript in first array " & Result1 & " lowest subscript in 3rd array " & Result2 & " Lowest subscript in Arraywithoutlbound " & Result3 End Sub
#5) Ubound
It ສົ່ງຄືນຄ່າຍ່ອຍເທິງຂອງອາເຣທີ່ລະບຸໄວ້ເປັນອາກິວເມັນໃນຟັງຊັນ Ubound.
Syntax: UBound( ArrayName, [Dimension] )
ArrayName ແມ່ນຊື່ຂອງ array.
Dimension is the optional integer value, if the array has multiple dimensions, then you can state as the dimension that you want to see the Ubound.
ຕົວຢ່າງ:2
Sub UboundTest() Dim Result1, Result2, Result3 Dim ArrayValue(1 To 10, 5 To 15, 10 To 20) ' Declare array variables. Dim ArraywithoutUbound(10) Result1 = UBound(ArrayValue, 1) Result2 = UBound(ArrayValue, 3) Result3 = UBound(ArraywithoutUbound) MsgBox "Lowest subscript in first array " & Result1 & " lowest subscript in 3rd array " & Result2 & " Lowest subscript in Arraywithoutlbound " & Result3 End Sub
#6) Split
ມັນສົ່ງຄືນ array ທີ່ມີສະຕຣິງຍ່ອຍຈຳນວນໜຶ່ງທີ່ໄດ້ມາຈາກສະຕຣິງທັງໝົດທີ່ໃຫ້ມາ.
Syntax: Split(expression, [ delimiter, [ limit, [ compare ]]])
- Expression: ນີ້ແມ່ນສະຕຣິງທັງໝົດທີ່ຈະໃຊ້ເພື່ອ ຜະລິດສະຕຣິງຍ່ອຍ.
- ຕົວຂັ້ນ: ໂດຍໃຊ້ຕົວຂັ້ນທີ່ລະບຸ, ສະຕຣິງຍ່ອຍຈະຖືກສ້າງ. ຖ້າອັນນີ້ບໍ່ໄດ້ກ່າວເຖິງ, ຍະຫວ່າງຈະຖືກພິຈາລະນາເປັນຕົວຂັ້ນ. substring ຖືກຜະລິດ, ທ່ານສາມາດນໍາໃຊ້ຕົວເລືອກການປຽບທຽບທີ່ແຕກຕ່າງກັນເພື່ອທົດສອບຜົນໄດ້ຮັບ.
ຕົວຢ່າງ: ໃນຕົວຢ່າງຂ້າງລຸ່ມນີ້, ພວກເຮົາກໍາລັງໃຊ້ຕົວຂັ້ນເປັນ – ແລະຈໍາກັດເປັນ 3.
ເພາະສະນັ້ນຟັງຊັນການແບ່ງປັນຈະແຍກສະຕຣິງທັງໝົດອອກເປັນສະຕຣິງຍ່ອຍໂດຍອີງໃສ່ຕົວຂັ້ນ. ແຕ່ພວກເຮົາຍັງໄດ້ກ່າວເຖິງຂອບເຂດຈໍາກັດເປັນ 3 ດັ່ງນັ້ນ substrings ຈະບໍ່ຖືກສ້າງຕັ້ງຂຶ້ນຫຼັງຈາກຂອບເຂດຈໍາກັດ 3. ດັ່ງນັ້ນຕົວຂັ້ນສຸດທ້າຍ -ຈະຖືກຂ້າມໄປ.
Sub splitExample() Dim MyString As String Dim Result() As String Dim DisplayText As String MyString = "This is the example for-VBA-Split-Function" Result = Split(MyString, "-",3) MsgBox Result(0) & vbNewLine & Result(1) & vbNewLine & Result(2) & vbNewLine & Result(3) End Sub
#7) ເຂົ້າຮ່ວມ
ນີ້ເປັນພຽງການກັບຄືນຂອງການແບ່ງປັນ, Join ຈະສ້າງໜຶ່ງສະຕຣິງໂດຍການລວມສາຍຍ່ອຍຫຼາຍອັນ.
Syntax: Join(sourcearray, [ delimiter ])
Sourcearray: Are-dimensional of strings ທີ່ທ່ານຕ້ອງການເຂົ້າຮ່ວມເປັນອັນນຶ່ງ.
ຕົວຂັ້ນ: ຕົວຂັ້ນທີ່ລະບຸຈະຖືກເພີ່ມຫຼັງຈາກແຕ່ລະສະຕຣິງໃນຂະນະທີ່ເຂົ້າຮ່ວມ.
ຕົວຢ່າງ:
Sub joinExample() Dim Result As String Dim dirarray(0 To 2) As String dirarray(0) = "D:" dirarray(1) = "SoftwareTestingHelp" dirarray(2) = "Arrays" Result = Join(dirarray, "\") MsgBox "Date after joining " & Result End Sub
ທັງໝົດ 3 ຄ່າແມ່ນ ເຂົ້າຮ່ວມແລະ \ ແມ່ນຖືກຈັດໃສ່ລະຫວ່າງແຕ່ລະຄໍາ, ດັ່ງທີ່ພວກເຮົາໄດ້ກ່າວເຖິງ \ ເປັນຕົວກໍານົດ. ຊອກຫາການຈັບຄູ່ທີ່ລະບຸຈາກ array. ອີງຕາມເງື່ອນໄຂການກັ່ນຕອງ, ຊຸດຍ່ອຍຂອງ string array ຈະຖືກສົ່ງຄືນ.
Syntax: Filter(sourcearray, match, [ include, [ ປຽບທຽບ ]])
ຕົວຢ່າງ:
Sub filterExample() Dim Mystring As Variant Mystring = Array("Software Testing", "Testing help", "Software help") filterString = Filter(Mystring, "help") MsgBox "Found " & UBound(Mystring) - LBound(Mystring) + 1 & " words matching the criteria " End Sub
ຕົວຢ່າງນີ້ຈະຄົ້ນຫາຄຳສັບ “ຊ່ວຍ” ໃນທຸກສະຕຣິງອາເຣໂດຍໃຊ້ຟັງຊັນການກັ່ນຕອງ.
ຄຳຖາມທີ່ພົບເລື້ອຍ
ຄຳຖາມ #1) ວິທີການຮັບຄວາມຍາວຂອງອາເຣໃນ VBA?
ຄຳຕອບ: ເພື່ອໃຫ້ໄດ້ຄວາມຍາວຂອງອັນໃດນຶ່ງ. array, ພວກເຮົາໃຊ້ຟັງຊັນ Ubound. ຟັງຊັນນີ້ຈະເຮັດໃຫ້ເຮົາມີ subscript ເທິງຂອງ array ທີ່ລະບຸໄວ້.
Q #2) ວິທີການປະກາດ array ໃນ VBA?
ຄໍາຕອບ: One- ມິຕິມິຕິອາເຣຖືກປະກາດຕາມຮູບຂ້າງລຸ່ມ.
Dim arrayname(lowerbound to UpperBound) As DataType
ຕົວຢ່າງ: Dim Myarray(0 ຫາ 2) ເປັນຈຳນວນເຕັມ
ສອງມິຕິ