Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
eestirula3
HV kasutaja

liitunud: 07.12.2009
|
20.10.2012 20:37:41
Excel, abi vaja |
|
|
Kas keegi oskab aidata. Excel viskas mingi vimpa sisse ja nüüd ei saa nende andmetega midagi teha. Ei ole ka õiget backup'i.
Nimelt probleem seisneb selle, et excelis olevad tänava aadressitele viskas tänava nime ja numbri üks teise otsa.
Niimoodi (Vilde tee76A Tallinn, Soo7 Türi, Tali Pärnumaa) aga oleks vaja saada nii (Vilde tee 76A Tallinn, Soo 7 Türi, Tali Pärnumaa).
Kuidas seda probleemi lahendada?
|
|
Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
14 |
|
tagasi üles |
|
 |
alfreedo
HV vaatleja
liitunud: 20.06.2010
|
21.10.2012 22:38:06
|
|
|
Proovi nii.
Pane näiteks Module1-e:
Option Explicit
Function AddSpaces(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String
Application.Volatile
If Len(Str) < 2 Then
AddSpaces = Str
Exit Function
End If
For i = 1 To Len(Str)
nextChar = Mid(Str, i + 1, 1)
currChar = Mid(Str, i, 1)
If (Not IsNumeric(currChar) And (IsNumeric(nextChar))) Then
s = s & currChar & " "
Else
s = s & currChar
End If
Next
AddSpaces = Trim(s)
End Function
|
Lahtrisse A1 sisesta oma aadress.
Lahtrisse B1 sisesta: =AddSpaces(A1)
LahtriB1 koopeerimispunktil-(ristil) tee topeltklikk.
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
eestirula3
HV kasutaja

liitunud: 07.12.2009
|
31.10.2012 13:16:26
|
|
|
Nüüd juhtus vastupidi,
Punane 21Harjumaa 13611 Tallinn
Tuulemäe 5Harjumaa 11411 Tallinn
Musta tee 22AViljandimaa 71008 Viljandi
Kas keegi oskab seda VBA koodi muuta vastavaks?
alfreedo kirjutas: |
Proovi nii.
Pane näiteks Module1-e:
Option Explicit
Function AddSpaces(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String
Application.Volatile
If Len(Str) < 2 Then
AddSpaces = Str
Exit Function
End If
For i = 1 To Len(Str)
nextChar = Mid(Str, i + 1, 1)
currChar = Mid(Str, i, 1)
If (Not IsNumeric(currChar) And (IsNumeric(nextChar))) Then
s = s & currChar & " "
Else
s = s & currChar
End If
Next
AddSpaces = Trim(s)
End Function
|
Lahtrisse A1 sisesta oma aadress.
Lahtrisse B1 sisesta: =AddSpaces(A1)
LahtriB1 koopeerimispunktil-(ristil) tee topeltklikk. |
|
|
Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
14 |
|
tagasi üles |
|
 |
alfreedo
HV vaatleja
liitunud: 20.06.2010
|
31.10.2012 22:46:01
|
|
|
Pane näiteks Module2-e:
Function AddSpaced(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String
Application.Volatile
If Len(Str) < 2 Then
AddSpaced = Str
Exit Function
End If
For i = 1 To Len(Str)
nextChar = Mid(Str, i + 1, 1)
currChar = Mid(Str, i, 1)
If Not IsEmpty(currChar) Then
If (IsNumeric(currChar) And (Not IsNumeric(nextChar))) Then
s = s & currChar & " "
Else
s = s & currChar
End If
End If
Next
AddSpaced = Trim(s)
End Function
|
Sama faili möne teise lehe lahtrisse A1 sisesta oma aadress.
Lahtrisse B1 sisesta: =AddSpaced(A1)
LahtriB1 koopeerimispunktil-(ristil) tee topeltklikk.
Kood ei ole täiuslik, kuna loeb vaid arve ja täheühikuid ja ei möista kas nr 22-le järgnev täht (A) kuulub korterinumbri alla või on juba maakonnanime esimene täht.
Lahenduseks:
1.Lugeda lahtris olev string teistesse lahtritesse kasutades eraldajaks koma ja seejärel neid lahtreid vastavalt töödelda ning liita need uuesti kokku stringiks.
2.Lugeda array`sse maakondade nimed ja stringi töödelda juba selle alusel.
viimati muutis alfreedo 31.10.2012 23:01:27, muudetud 1 kord |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
eestirula3
HV kasutaja

liitunud: 07.12.2009
|
31.10.2012 22:52:54
|
|
|
See lahendus ei aidanud.
alfreedo kirjutas: |
Pane näiteks Module2-e:
Function AddSpaced(Str As String) As String
Dim s As String
Dim i As Integer
Dim nextChar As String, currChar As String
Application.Volatile
If Len(Str) < 2 Then
AddSpaced = Str
Exit Function
End If
For i = 1 To Len(Str)
nextChar = Mid(Str, i + 1, 1)
currChar = Mid(Str, i, 1)
If Not IsEmpty(currChar) Then
If (IsNumeric(currChar) And (Not IsNumeric(nextChar))) Then
s = s & currChar & " "
Else
s = s & currChar
End If
End If
Next
AddSpaced = Trim(s)
End Function
|
|
|
|
Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
14 |
|
tagasi üles |
|
 |
alfreedo
HV vaatleja
liitunud: 20.06.2010
|
31.10.2012 23:11:29
|
|
|
Vöibolla oleks kasulik panna oma failist väike näidis kuhugi üles.
tsitaat: |
Excel viskas mingi vimpa sisse.....
|
tsitaat: |
Nüüd juhtus vastupidi...
|
Kas on tegemist CSV, PDF vms faili töötlusega-laadimisega?
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
eestirula3
HV kasutaja

liitunud: 07.12.2009
|
01.11.2012 10:02:53
|
|
|
CSV. fail töötlemisega. Nüüd läksid andmed niimoodi, maakond ja tänavanmber läksid kokku:
Punane 21Harjumaa 13611 Tallinn
Tuulemäe 5Harjumaa 11411 Tallinn
Musta tee 22AViljandimaa 71008 Viljandi
alfreedo kirjutas: |
Vöibolla oleks kasulik panna oma failist väike näidis kuhugi üles.
tsitaat: |
Excel viskas mingi vimpa sisse.....
|
tsitaat: |
Nüüd juhtus vastupidi...
|
Kas on tegemist CSV, PDF vms faili töötlusega-laadimisega? |
|
|
Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
14 |
|
tagasi üles |
|
 |
alfreedo
HV vaatleja
liitunud: 20.06.2010
|
01.11.2012 22:05:32
|
|
|
Teadmata URL-i, Csv-faili arvutisse saamise moodust, Exceli versiooni jms on raske millegagi aidata.
Ise kasutan järgnevat koodi juba aastaid ja pole probleemi olnud.
Sub Csv_st_Excelisse ()
Dim sfileName, sURL As String
sURL ="http://www.xxx/ .....downloadcsv.....
sfileName = "C:\Documents and Settings\Igapäevane\Andmed.xls"
SaveWebFile sURL, sfileName
End Sub
Function SaveWebFile(ByVal vWebFile As String, ByVal vLocalFile As String)
Dim oXMLHTTP As Object, vFF As Long, oResp() As Byte
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", vWebFile, False
oXMLHTTP.send
Do While oXMLHTTP.ReadyState <> 4
DoEvents
Loop
oResp = oXMLHTTP.responseBody 'Returns the results as a byte array
vFF = FreeFile
If Dir(vLocalFile) <> "" Then Kill vLocalFile
Open vLocalFile For Binary As #vFF
Put #vFF, , oResp
Close #vFF
Set oXMLHTTP = Nothing
End Function
|
|
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
eestirula3
HV kasutaja

liitunud: 07.12.2009
|
04.11.2012 14:17:22
|
|
|
Saatsin Teile selle faili postkasti.
alfreedo kirjutas: |
Teadmata URL-i, Csv-faili arvutisse saamise moodust, Exceli versiooni jms on raske millegagi aidata.
Ise kasutan järgnevat koodi juba aastaid ja pole probleemi olnud.
Sub Csv_st_Excelisse ()
Dim sfileName, sURL As String
sURL ="http://www.xxx/ .....downloadcsv.....
sfileName = "C:\Documents and Settings\Igapäevane\Andmed.xls"
SaveWebFile sURL, sfileName
End Sub
Function SaveWebFile(ByVal vWebFile As String, ByVal vLocalFile As String)
Dim oXMLHTTP As Object, vFF As Long, oResp() As Byte
Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
oXMLHTTP.Open "GET", vWebFile, False
oXMLHTTP.send
Do While oXMLHTTP.ReadyState <> 4
DoEvents
Loop
oResp = oXMLHTTP.responseBody 'Returns the results as a byte array
vFF = FreeFile
If Dir(vLocalFile) <> "" Then Kill vLocalFile
Open vLocalFile For Binary As #vFF
Put #vFF, , oResp
Close #vFF
Set oXMLHTTP = Nothing
End Function
|
|
|
|
Kommentaarid: 14 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
14 |
|
tagasi üles |
|
 |
|