Datele inițiale sunt un tabel Excel de 12 coloane.
Mai întâi, macro-ul creează un dosar pentru fișiere text viitoare.
Dosarul este creat în același director ca și registrul de lucru Excel.
Apoi, pentru fiecare rând al tabelului, macroul formează un subfolder,
folosind numele său ca text din coloana a 7-a a tabelului.
Apoi, atunci când dosarul pentru fișier este creat, macro-ul creează un fișier text cu conținutul coloanei 10 a tabelului,
și o stochează sub numele luat din a doua coloană a aceluiași tabel Excel.
După crearea fișierului, acesta schimbă codificarea în UTF-8 (inițial, la crearea fișierelor care au codificare Unicode)
Când macrocomanda se termină, se deschide dosarul care conține fișierele text create.
Vedeți fișierul atașat pentru un exemplu de macrocomandă.
Codul macro care creează folderele, subfolderele și fișierele text din datele din tabelul Excel:
Prompt, dar fișierele de date macro nu ar putea fi dintr-o linie Excel, ci din mai multe bazându-se pe o caracteristică comună, de exemplu, în grupuri? De exemplu: există un grup de ceaiuri și include câmpuri din patru linii Excel, aveți nevoie ca toate acestea să fie prezente într-un singur fișier, iar deasupra acestora prima linie va fi capacul "Hat + numele grupului". Fișierul Excel va fi sortat după această caracteristică, nu va avea mai mult de 500 de linii.
exemplu:
"Hat de ceai"
super ceai pentru toată lumea
super duper ceai pentru toată lumea
ceai rapid
nu foarte rapid ceai
probabil exprimate în mod greșit. Am experimentat cu Filename $ = Folder $ Trim (arr (i, 2)) ".txt"
astfel încât o coloană și o celulă unică să iasă cu un număr. Ie având datele din coloană: mărfurile A, mărfurile B, mărfurile B pentru a primi fișierele de ieșire de tip: 1.mărfuri A, 2.mărfuri B, 3.mărfuri B
Cum să o porniți?
Voi fi recunoscător pentru răspunsul dat)
mulțumesc că vrei să ajuți, dar mă tem că este ceva greșit
dacă înțeleg totul corect, atunci codul dat de tine constă din 2 părți:
1. O macrocomandă care, dacă este rulată într-un fișier Excel deschis .csv, recodează acest fișier în utf-8 fără un BOM. Nu știu de ce, dar nu funcționează pentru mine.
Fac exact următoarele - există o tabelă simplă în Excel, o salvez ca .csv, execut macro, fișierul este închis. În cazul în care este apoi deschis, chiar dacă Excel Notepad ++, atunci există o linie în Abracadabra, Notepad ++ așa cum este prezentat de codificare ANSI în fișierul original, și îl afișează ca un fișier nou.
2. O funcție care recodează codul .csv specificat în codificarea dorită. De exemplu, puteți salva foaia de calcul Excel în .csv, specificați calea către acest fișier pe disc, iar funcția va schimba codarea acestui fișier
În primul rând, nu este clar ce să specificăm în argumentul SourceCharset
în al doilea rând, în cazul în care nu SourceCharset ukazyavat, se pare fără sens într-o singură linie ca și în cazul de mai sus, cu toate că există Notepad ++ sunt de acord că codificarea este UTF-8 fără BOM
În al treilea rând, sarcina inițială a sunat destul de diferită, și anume.
„Excel are un format de placă, spune .xlsx. Făcând clic pe macro, acesta își păstrează această placă în aceeași locație, dar în format .csv, cu acest .csv codat în utf-8 fără BOM“ (de fapt, capacitatea de a specifica codarea atunci când salvarea .csv este în OpenOffice Calc, dar într-un fel, Excel meu preferat nu-și poate permite.)
în general, cred că, dacă putem pune în aplicare opțiunea în OpenOffice Calc sau o opțiune mai ușor, adică, fără a selecta dosarul pentru a salva (puteți dedica un articol separat pentru acest lucru, de altfel), afluxul de mai mulți vizitatori de la webmasteri nevoie de site-ul dvs. furnizat. Iar site-ul, apropo, este foarte abrupt, nu poți să crezi că este de origine rusă.
Bună, Vasily.
Macro și buton la toate dorințele din CSV nu vor fi salvate, - CSV este un format de text.
Macroarea poate fi simplificată - dacă salvați întregul fișier în CSV
Dacă ați salvat manual fișierul în format CSV, - în macro vor fi suficiente 3 rânduri:
(macro-ul poate fi salvat în macrocomanda personală și poate fi executat prin apăsarea tastei rapide)
Bine ai venit! Simt că în această macrocomandă există tot ceea ce este necesar pentru sarcina mea, dar modul de izolare a acesteia nu este suficientă cunoaștere.
O nevoie este un foarte simplu, dar, pe de altă parte, este foarte necesar pentru acțiunea webmasteri (într-un Internet cautat - o mulțime de întrebări, o taxa zero): păstrați xls curent în .csv codare „utf-8 fără BOM“, și este necesar să se importe site date din Excel.
De fiecare dată când schimbăm codificarea csv într-un notebook este plictisitoare și va fi mai rapidă (și am înțeles corect că macroul și butonul de pornire sunt eliminați din csv?)
Stimate administrator! Vă mulțumim pentru ajutor, dar nu este exact ceea ce am nevoie :) am nevoie pentru a scrie datele din prima coloană nu este în numele fișierului și fișierul în sine. Să presupunem că în prima coloană am următoarele rânduri: 34,35,36. În coloana a doua, respectiv liniile 11, 12, 12. Ieșirea mi-ar obține, respectiv txt 2 fișier: Prima va fi numit „11“ și va fi datele „34“, iar al doilea se numește „12“ și va fi date: "35/36". Vă mulțumim în avans pentru ajutor. )
Înlocuiți această linie în cod
PS: caracterul "/" nu poate fi folosit în numele fișierului, astfel încât delimitatorul a fost setat cu "-"
Modificat macro-ul dvs. puțin, dar nu pot face ceva. Am 2 coloane cu numere. Trebuie să generez fișiere text cu nume din 2 coloane, în care să scriu date din prima coloană. Acest lucru se face bine. Dar dacă în coloana 2 numărul coincide cu cel precedent, se creează un fișier cu același nume care suprascrie fișierul anterior. Și am nevoie ca numărul din prima coloană prin semnul "/" să fie atașat. De exemplu, 123456/789012. Cum se face acest lucru?
Acest lucru nu este predat nicăieri - vă puteți învăța singuri. dacă există interes pentru programare.