Pozdravljeni
Ne vem kako bi pobral del podatkov iz txt datoteke v excel, za nadaljno obdrlavo .
V službi imamo mašino za utrujanje materiala. Ta dela nekako v ciklusih. Podatke beleži v txt datoteko nekako tako:
prvi stolpec = čas
drugi stolpec = številka ciklusa
tretji stolpec = pomik 1
četrti stolpec = pomik 2
peti stolpec = sila
šesti stolpec = pomik 3
Težava mi je v tem, da je veliko vrstic (cca 20000 ciklusov po cca 100 vrstic) in da celotne datoteke ne morem uvozit v excel.
Želel pa bi uvoziti (poljubno) vse podatke npr. od 11111-ega ciklusa, pa do 11121 ciklusa.
Prosil bi za kak namig .
Podatki iz txt datoteke
Nekaj takšnega, kot je zapisano spodaj:
To je praktično že rešitev. Popraviti je potrebno samo ime datoteke, da bo ustrezala realnemu stanju in pa ustrezno popraviti parameter v funkciji Split.
Funkcija Split namreč razbije vhodni niz na posamezne elemente. Ob tem predpostavlja, da so elementi ločeni z nekim znakom - jaz sem predpostavil podpičje, zato Split(xxxx, ";"). Če so stolpci ločeni z drugim znakom, potem to ustrezno zamenjajte. TO JE VSE.
Kot vidite, vam bo funkcija v aktivni zvezek od vrstice 1 dalje prebrala vse zapise za izbrano ciklus.
Koda: Izberi vse
Sub NekajTaksnega(ciklus As String)
Dim prebranaVrstica As String
Dim vrsticaVExcelu As Long
Dim razbito
vrsticaVExcelu = 0
Open "<ime vhodne datoteke>" For Input As #1
Do While Not EOF(1)
Line Input #1, prebranaVrstica
razbito = Split(prebranaVrstica, ";")
If (razbito(1) = ciklus) Then
Cells(vrsticaVExcelu, 1) = prebranaVrstica
vrsticaVExcelu = vrsticaVExcelu + 1
End If
Loop
Close #1
End Sub
Funkcija Split namreč razbije vhodni niz na posamezne elemente. Ob tem predpostavlja, da so elementi ločeni z nekim znakom - jaz sem predpostavil podpičje, zato Split(xxxx, ";"). Če so stolpci ločeni z drugim znakom, potem to ustrezno zamenjajte. TO JE VSE.
Kot vidite, vam bo funkcija v aktivni zvezek od vrstice 1 dalje prebrala vse zapise za izbrano ciklus.
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Se zahvaljujem za odgovor.
Se mi je pa zataknilo (pač zaradi mojega neznanja) .
Kodo sem dopolnil.
Žal pa ne dela. Stolpci so ločeni s tabulatorjem (pa ne vem kako to napisat. Ime ciklusa je 1.000000, pa tudi to ne vem, če sem prav vpisal (v narekovajih). Prosim še za malo pomoči.
LP
Se mi je pa zataknilo (pač zaradi mojega neznanja) .
Kodo sem dopolnil.
Koda: Izberi vse
Sub NekajTaksnega(ciklus As String)
Dim prebranaVrstica As String
Dim vrsticaVExcelu As Long
Dim razbito
vrsticaVExcelu = 0
Open "C:\Test_x\Test.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, prebranaVrstica
razbito = Split(prebranaVrstica, "tab")
If (razbito(1) = "1.000000") Then
Cells(vrsticaVExcelu, 1) = prebranaVrstica
vrsticaVExcelu = vrsticaVExcelu + 1
End If
Loop
Close #1
End Sub
LP
Koda
vam razbije niz na podnize, ki so ločeni z besedo 'tab' in ne znakom 'tab', ki je en sam znak z kodo 9. Pravilna koda je torej:
Kar pa se tiče ciklusa, ga morate pa natančno napisati. Če je '1000000' potem morate zapisati '1000000' in ne '1.000.000' ali '1.000000'...
Koda: Izberi vse
razbito = Split(prebranaVrstica, "tab")
Koda: Izberi vse
razbito = Split(prebranaVrstica, chr(9))
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator