Šī apmācība parādīs, kā konvertēt teksta virkni vienā šūnā uz vairākām kolonnām, izmantojot Range TextToColumns metodi VBA
Teksts kolonnās
The Diapazons.TextToColumns metode VBA ir spēcīgs rīks, lai attīrītu datus, kas ir importēti, piemēram, no teksta vai csv failiem.
Apsveriet šādu darblapu.
Dati programmā Excel ir ievietoti vienā kolonnā un ir atdalīti ar pēdiņām.
Lai atdalītu šos datus kolonnās, varat izmantot diapazona TextToColumns metodi.
TextToColumns sintakse
izteiksme.TextToColumns (Galamērķis, Datu tips, TextQualifier, SecīgsDelimiter, Tab, Semikols, Komats, Kosmoss, Citi, CitsChar, FieldInfo, DecimalSeparator, Tūkstošiem atdalītāju, TrailingMinusNumbers)
Izteiksme
Šis ir šūnu diapazons, kuru vēlaties sadalīt, piemēram: diapazons (“A1: A23”).
Visi TextToColumns metodes argumenti nav obligāti (ap tiem ir kvadrātiekavas).
Galamērķis
Kur vēlaties, lai rezultāts tiktu ievietots - bieži vien jūs ignorējat datus un sadalāt tos tajā pašā vietā.
Datu tips
Jūsu izmantotā teksta parsēšanas veids - tas var būt xlIerobežots (noklusējuma, ja netiek izlaists), vai xlFixedWidth.
TextQualifier
Ja ap katru sadalāmā teksta lauku ir pēdiņas (viena vai dubultā), jums jānorāda, vai tie ir viens vai divkāršs.
SecīgsDelimiter
Tas ir vai nu patiess, vai nepatiess, un liek VBA apsvērt 2 vienādus norobežotājus kopā tā, it kā tas būtu 1 norobežotājs.
Tab
Tas ir vai nu Taisnība no Nepareizi, noklusējums ir Nepatiess - tas norāda VBA, ka dati ir norobežoti ar cilni.
Semikols
Tas ir vai nuTaisnība no Nepareizi, noklusējums ir Nepatiess - tas norāda VBA, ka dati ir norobežoti ar semikolu.
Kosmoss
Tas ir vai nu Taisnība no Nepareizi, noklusējums ir Nepatiess - tas norāda VBA, ka dati ir norobežoti ar atstarpi.
Citi
Tas ir vai nu Taisnība no Nepareizi, noklusējums ir Nepatiess. Ja iestatāt šo vērtību Patiess, tad nākamais arguments CitsChar nepieciešams precizēt.
CitsChar
Šī ir rakstzīme, ar kuru teksts tiek atdalīts (piemēram: vai | piemēram).
FieldInfo
Šis ir masīvs, kas satur informāciju par atdalāmo datu veidu. Masīva pirmā vērtība norāda datu sleju numuru, bet otrā vērtība norāda konstanti, kuru izmantosit, lai attēlotu vajadzīgo datu tipu.
Piemērs piecām kolonnām ar teksta, skaitļu un datumu datu tipiem varētu būt šāds:
Masīvs (Masīvs (1, xlTextFormat), Masīvs (2, xlTextFormat), Masīvs (3, xlGeneralFormat), Masīvs (4, xlGeneralFormat), Masīvs (5, xlMDYFormat))
Vēl viens veids, kā to noteikt, ir šāds:
Masīvs (Masīvs (1, 2), Masīvs (2, 2), Masīvs (3, 1), Masīvs (4, 1), Masīvs (5, 3))
Skaitļi otrajā kolonnā ir to konstantu vērtības, kurās konstantes xlTextFormat vērtība ir 2, xlGeneralFormat (noklusējuma) vērtība ir 1 un xlMDYFormat vērtība ir 3.
DecimalSeparator
Varat norādīt decimāldaļu atdalītāju, kas jāizmanto VBA, ja datos ir skaitļi. Ja tas tiek izlaists, tas izmantos sistēmas iestatījumu, kas parasti ir periods.
Tūkstošiem atdalītāju
Ja datos ir skaitļi, varat norādīt tūkstošiem atdalītāju, kas jāizmanto VBA. Ja tas tiek izlaists, tas izmantos sistēmas iestatījumu, kas parasti ir komats.
TrailingMinusNumbers
Šis arguments galvenokārt attiecas uz datu savietojamību, kas ģenerēta no vecākām sistēmām, kurās mīnus zīme bieži bija aiz numura, nevis agrāk. Ja negatīvo skaitļu aizmugurē ir mīnusa zīme, to vajadzētu iestatīt uz Patiess. Noklusējuma vērtība ir False.
Teksta konvertēšana kolonnās
Tālāk aprakstītā procedūra konvertēs iepriekšminētos Excel datus kolonnās.
12345678910111213141516 | ApakštekstsToCol1 ()Diapazons ("A1: A25"). TextToColumns _Galamērķis: = Diapazons ("A1: A25"),DataType: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutiveDelimiter: = True, _Cilne: = nepatiesa, _Semikols: = nepatiess, _Komats: = nepatiess,Atstarpe: = taisnība, _Cits: = nepatiess, _FieldInfo: = masīvs (masīvs (1, 1), masīvs (2, 1), masīvs (3, 1), masīvs (4, 1), masīvs (5, 1)), _DecimalSeparator: = "." , _ThousandsSeparator: = ",", _TrailingMinusNumbers: = TrueBeigu apakš |
Iepriekš minētajā procedūrā mēs esam aizpildījuši visus parametrus. Tomēr daudzi parametri ir iestatīti uz nepatiesiem vai noklusējuma iestatījumiem un nav nepieciešami. Iepriekš minētās procedūras tīrāka versija ir izklāstīta zemāk. Jums ir jāizmanto parametru nosaukumi, lai norādītu, kurus parametrus mēs izmantojam.
1234567 | ApakštekstsToCol2 ()Diapazons ("A1: A25"). TextToColumns _DataType: = xlDelimited, _TextQualifier: = xlDoubleQuote, _ConsecutiveDelimiter: = True, _Atstarpe: = taisnība,Beigu apakš |
Patiesībā ir nepieciešami tikai 4 parametri - dati ir norobežoti ar pēdiņu, jūs vēlaties, lai secīgas pēdiņas tiktu uzskatītas par vienu, un datus atdala ar atstarpi!
Lai iegūtu vēl ātrāku koda rindu, mēs varētu izlaist parametru nosaukumus, bet tad mums vajadzēs ievietot komatus, lai saglabātu parametra vietu. Informācija jāsniedz tikai līdz pēdējam izmantotajam parametram - šajā gadījumā atstarpei, kas atdala datus, kas ir astotais parametrs.
123 | ApakštekstsToCol3 ()Diapazons ("A1: A25"). TextToColumns, xlDelimited, xlDoubleQuote, True,,,, TrueBeigu apakš |
Kad esat izpildījis kādu no iepriekšminētajām procedūrām, dati tiks atdalīti saskaņā ar zemāk redzamo grafiku.