Мазмұны
Массив - деректердің бірдей түрлерін сақтайтын айнымалы. Егер деректердің бір жолы немесе бір бағанасы болса, онда ол бір өлшемді массив ретінде белгілі. Дегенмен, бірнеше жол мен баған болса, ол 2D массиві деп аталады. VBA жүйесінде массив өлшемін өзгерту үшін ReDim қолданамыз. Бұған қоса, ескі деректерді сақтау үшін Preserve кілт сөзін ReDim көмегімен қолданамыз. Бұл мақала сізге 2 Excel VBA<жүйесінде 2D массивін « ReDim сақтау » жылдам тәсілдерін көрсетеді. 3> .
Тәжірибелік жұмыс кітабын жүктеп алу
Macro to ReDim Preserve 2D.xlsm
2 ыңғайлы тәсіл ReDim Preserve 2D массивін Excel VBA ішінде сақтау
Бұл үш жол және екі баған бар 2D массив арқылы жасалған негізгі деректер жинағы. Біріншіден, біз осы массивті жасаймыз. Содан кейін біз осы массивке тағы бір баған қосамыз. Ол үшін « ReDim Preserve » қолданамыз. Бұған қоса, біз мұны қолданбасақ не болатынын көрсетеміз.
Әдепкі бойынша біз массивтің соңғы өлшемін ғана өзгерте аламыз (мысалы, бағандар немесе жоғарғы шекара). Excel VBA бағдарламасындағы 2D массивінің екі өлшемін де өзгерту үшін біз массивтің орнын ауыстырамыз, содан кейін соңғы өлшемді өзгертеміз, содан кейін қайтадан ауыстырамыз.
1 ReDim Соңғы өлшемді 2D массивін сақтау
Алдымен 2D массивін динамикалық ретінде анықтаймыз. Содан кейін ReDim операторын қолданып, біз жасаймызүш жол және екі баған бар массив. Соңында, ReDim операторын қайтадан Preserve кілт сөзімен қолданамыз. екі өлшемді массивтің жоғарғы шекарасын ұлғайту.
Қадамдар:
- Бастау үшін ALT+F11 пернелерін басыңыз. VBA модулі терезесін шығару үшін . Немесе, мұны Әзірлеуші қойындысынан → Visual Basic таңдаңыз.
- Содан кейін қойындысын кірістіру → Модуль таңдаңыз. Біз VBA кодын осында тереміз.
- Кейін, Модуль ішіне келесі кодты теріңіз. терезе.
3772
VBA кодының бөлінуі
- Біріншіден, біз қоңырау шаламыз. Қосымша процедура “ Redim_Preserve_2D_Array_Row ”.
- Содан кейін Біздің_массив айнымалысын динамикалық массив ретінде жариялаймыз.
- Содан кейін массив өлшемін анықтаймыз. Төменгі шекара 3 , жоғарғы шекара 2 және екеуі де 1 -ден басталады.
- Содан кейін массивке мәндерді тағайындаймыз. .
- Одан кейін мәндерді C6:D8 ұяшық диапазонына енгіземіз.
- Одан кейін біз кодты орындайды.
- Сонымен, Сақтау Модуль және Орындау<түймесін басыңыз. 3> .
- Нәтижесінде ол анықталған ұяшық ауқымдарына мәндерді қайтарады. « Рэйчел » 1 жолында және 1 бағанында екенін көреміз,ол VBA кодында ( 1,1 ) ретінде анықталған.
- Енді біз массивтің өлшемін өзгертеміз.
- Сонымен, мұны алдыңғы кодқа қосып, бірінші Range.Value операторын алып тастаңыз. Сонымен қатар, кодтың қалай көрінетінін төмендегі суреттен көруге болады.
9105
- Мұнда біз жоғарғы шекараны ( ) арттырдық. 1 Кімге 2 ) дейін ( 1 Кімге 3 ) 1 .
- Содан кейін біз массивке мәндерді қостық.
- Енді осы кодты орындасақ, онда алдыңғы мәндердің сақталмағанын көреміз. Ол алдыңғы мәндер үшін бос мәнді қайтарады.
- Енді біз Preserve кілт сөзін <ішіне қосу арқылы түзете аламыз. 1>ReDim операторы .
- Соңында, біздің толық кодымыз мына болады.
2666
- Енді, егер біз Осы кодты орындаңыз , содан кейін шығыс келесідей болады. Осылайша, Excel VBA бағдарламасындағы 2D массивінің соңғы өлшемін « ReDim Preserve » жасаймыз. Енді келесі әдіс « ReDim алу жолын көрсетеді. Сақтау » және массивтің екі өлшемін де өзгертіңіз.
Толығырақ: Бірегей алу үшін VBA Excel бағдарламасындағы бағаннан массивке дейінгі мәндер (3 шарт)
Ұқсас оқулар
- Excel бағдарламасында кесте массивін қалай атауға болады (бар Оңай қадамдар)
- CSV файлын массивке оқу үшін Excel VBA (4 идеалды мысал)
- Excel бағдарламасында ауқымды массивке қалай түрлендіруге боладыVBA (3 жол)
- Excel VBA: массивтен көшірмелерді жою (2 мысал)
2. ReDim екі өлшемді 2D массивінде сақтау Excel VBA
Бұл соңғы әдісте біз сізге 2D массивінің өлшемін өзгерту және “ ReDim сақтау ” қадамдарын көрсетеміз. Мұнда массивтің төменгі шекарасының өлшемін өзгерту үшін VBA Transpose функциясын қолданамыз. Егер біз бірінші әдісте массивтің төменгі шегінің өлшемін өзгертуге әрекет жасасақ, онда біз « Ауқымнан тыс төменгі индекс » қатесін көреміз. Енді көп ұзамай, мұны қалай түзетіп, мақсатымызға жетуге болатынын көрейік.
Қадамдар:
- Біріншіден, бірінші әдісте көрсетілгендей , Модуль терезесін ашыңыз.
- Екіншіден, келесі код жолдарын қосыңыз. бірінші код.
6908
- Сонымен қатар соңғы әдіс коды келесідей болады.
6429
VBA кодының бөлінуі
- Біріншіден, біз Ішкі процедураны “ ReDim_Preserve_2D_Array_Both_Dimensions ” деп атаймыз. .
- Содан кейін VBA Transpose функциясына дейінгі қалған кодтар бірінші кодтағымен бірдей.
- Мұнда біз массивтің орнын ауыстырып жатыр.
- Содан кейін массивтің жоғарғы шекарасын үлкейтеміз.
- Одан кейін массивді қайтадан ауыстырамыз. Сондықтан, сайып келгенде, ол төменгі шекараны өзгертеді.
- Кейін, өлшемі өзгертілген массив үшін мәндерді енгіземіз.ескі деректерді сақтай отырып.
- Соңында мәндерді C6:E9 ұяшық диапазонына жазамыз.
- Кейін бұл бірінші әдісте көрсетілгендей , іске қосу осы код.
- Осылайша, кодтың -ді қалай сақтайтынын көреміз. 2D массив “ ReDim Preserve ” және VBA Transpose функциясын қолданып.
Толығырақ: Excel бағдарламасындағы массивді ауыстыру үшін VBA (3 әдіс)
Есте сақтау керек нәрселер
- ReDim Preserve массивтің төменгі шекарасын өзгерте алмайды. Ол үшін Transpose функциясын пайдалануымыз керек.
- Біз тек динамикалық массивтерде ReDim пайдалана аламыз.
Қорытынды
Біз сізге Excel VBA бағдарламасында 2D массив « ReDim Preserve » жасаудың екі жылдам әдісін көрсеттік. Егер сізде осы әдістерге қатысты қандай да бір мәселелер туындаса немесе мен үшін қандай да бір пікіріңіз болса, төменде түсініктеме қалдырыңыз. Сонымен қатар, Excel бағдарламасына қатысты басқа мақалалар үшін біздің сайтымызға ExcelWIKI кіре аласыз. Оқығаныңыз үшін рақмет, алға ұмтылыңыз!