VBA teksts kolonnās

Satura rādītājs

Šī 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.

wave wave wave wave wave