» »

EXCEL-VISUALBASIC

EXCEL-VISUALBASIC

KROKARR ::

Moj problem je sledeč:Iz interneta (yahoo) lahko uvozim-skopiram podatek z (opero) v polje excela v obliki recimo 113.5B ali 113,5B. Excel ga prepozna kot text in ga prikaže na levem robu excel. okna.
Ta podatek sedaj moram prevesti v število torej 113.5 ali 113,5 vendar to znam narediti samo ročno, z delite odstranim črko B.
Če je teh podatkov na stotine je to nekoliko mučno.
V vizual basicu ali z makrojem bi šlo lažje (cut-past, vmes pa transformacija-zbrisan B nakoncu).

Ali pozna kdo kako elegantno in delujočo rešitev (po možnosti za več označenih podatkov hkrati).

pozdravi.

darkolord ::

Z macrojem je preprosto, ampak... a ni še preprosteje naredit običajen Replace?

krofko ::

Če imaš samo za odstraniti črko B, ki je vedno na zadnjem mestu, potem lahko to narediš s funkcijo
=LEFT
. Npr. podatek imaš v polju A1. Postaviš se na polje B1 in pritisneš + ali = za vnos formule. Sedaj vneseš v celico B1
=LEFT(A1;LEN(A1)-1)
in formulo skopiraš po vseh vrsticah.

KROKARR ::

Z macrojem je preprosto, ampak... a ni še preprosteje naredit običajen Replace?


Z REPLACE se mi ni posrečilo saj je potrebno določiti mesto znaka, ki je vedno drugačno.
V dveh korakih z SUBSTITUTE, ki menja B z "presledkom" in VALUE, ki iz teksta naredi število pa mi je uspelo dobiti decimalna števila.

Hvala.

KROKARR ::

Če imaš samo za odstraniti črko B, ki je vedno na zadnjem mestu, potem lahko to narediš s funkcijo
=LEFT
. Npr. podatek imaš v polju A1. Postaviš se na polje B1 in pritisneš + ali = za vnos formule. Sedaj vneseš v celico B1
=LEFT(A1;LEN(A1)-1)
in formulo skopiraš po vseh vrsticah.


Tudi to sem probal in deluje, tudi tu v drugem koraku uporabim VALUE, da dobim število.

Hvala, ponovno.

bm0267 ::

z value ti bo delovalo......greš znak po znak v celici preverjat z makrojem, in preglejuješ če je beseda ali številka (izjemo moraš naredit vejice oz. pike), in potem sestavljaš neko drugo spremenljivko, ki jo nato vpišeš namesto stare vrednosti v celico.....
kao....
for i = 1 to len(Range("B2").value)

next i
BoSko

bm0267 ::

z value ti bo delovalo......greš znak po znak v celici preverjat z makrojem, in preglejuješ če je beseda ali številka (izjemo moraš naredit vejice oz. pike), in potem sestavljaš neko drugo spremenljivko, ki jo nato vpišeš namesto stare vrednosti v celico.....
kao....

tekst=Range("B2").value
tekst_novi=""
for i = 1 to len(tekst)
if(mid(tekst, i,1)<>0 then //če je val funcija različna od nič...pomeni ta je ta znak število
tekst_novi=tekst_novi & mid(tekst, i,1)
end if
//potrebno je še samo upoštevati izjeme za ",","." in "0" in je to to
if(mid(tekst, i,1)="," then
tekst_novi=tekst_novi & mid(tekst, i,1)
end if
next i
BoSko


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

pomoč v excelu (strani: 1 2 )

Oddelek: Programiranje
629150 (3479) omni-vor
»

C# povezava forma in classa

Oddelek: Programiranje
172364 (1827) Miko55
»

Calc/excel delo s tabelo

Oddelek: Programiranje
131467 (1234) salabajs
»

excel+visual basic

Oddelek: Pomoč in nasveti
101569 (1456) švrk
»

Visual Basic in Excel

Oddelek: Programiranje
262689 (2255) Vesoljc

Več podobnih tem