prvi 4je znaki spremenlivke

Pomoč pri delu z MS Excelom
Odgovori
Biasko
Prispevkov: 8
Pridružen: Sr Avg 17, 2005 11:58 am

prvi 4je znaki spremenlivke

Odgovor Napisal/-a Biasko »

Živjo!

v Visual Basicu nekaj progamiram in bi rad dobil samo prve 4 znake moje spremenljivke ki je neka beseda.
Povsod kjer programiram vem kako to narediti a tale visual basic mi pa dela probleme.

hvala!
Biasko
Prispevkov: 8
Pridružen: Sr Avg 17, 2005 11:58 am

Odgovor Napisal/-a Biasko »

aha sem že našel..kakšna banalna stvar
Left(priimek, 2)
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Pozdravljen

Vprašanje ste postavili v rubriko EXCEL, sprašujete po rešitvi z VB, verjetno pa želite kodo v VBA-ju. No ja, vsak si razlaga po svoje.

Koda:

VBA:

Koda: Izberi vse

Sub Makro1()
'
Dim MyString
 MyString = Range("A1").Value   ' Define string A1.
 MsgBox Left(MyString, 4)
End Sub
f v EXCEL-ovi preglednici:

Koda: Izberi vse

=LEFT(A1;4)
v kolikor pa res iščete rešitev v VB (sicer to ni pravi forum), mislim pa da je enaka VBA-jevi, le da boste string definirali nekje drugje in ne v polju A1.

Še prvi štirje znaki (od spredaj-zadaj). Zamenjajte "Left" z "Right"

Lp
Biasko
Prispevkov: 8
Pridružen: Sr Avg 17, 2005 11:58 am

Odgovor Napisal/-a Biasko »

OKY...IMAM ŠE ENO VPRAŠANJE.

Kaj porečete na to če recimo primerjam 2 celice in če primerjam po 5ih znakih mi potrdi da sta enaki, če pa po 20ih pa nista enaki, ampak v obeh mam isti text. garantirano! ?? krneki! kot da bi še presledke al kaj jaz vem upoštevalo, če pa recimo vsebino teh celic skopiram eno v drugo da sta IDENTIČNI potem pa potrdi da sta enake v obeh primerih. Ampak to se ne dogaja vedno!
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Še 1x pozdrav

Bil sem malce prepozen. Kar pa je tudi v redu, saj velja, kar se Janezek nauči to zna. In če pridemo sami do rešitve, je to vredno še več :wink: .

Lp
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Izgleda, da sva na liniji, samo jaz sem malo bolj počasen,...

Ja, kot ste rekli tudi presledek je znak. Še 1x preverite text in boste videli, da nimate istega. "KRNEKI", se ne dogaja več GARANTIRANO!

Lp
Biasko
Prispevkov: 8
Pridružen: Sr Avg 17, 2005 11:58 am

Odgovor Napisal/-a Biasko »

:)

kako pa odrežem presledke za zadnjo črko?

hvala
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

kako pa odrežem presledke za zadnjo črko?
Kaj pa je zadnja črka - primer :?: ?
Stenly
Prispevkov: 223
Pridružen: Sr Jul 27, 2005 11:29 pm

Odgovor Napisal/-a Stenly »

Mogoče bo pa to to.

Koda: Izberi vse

Sub Makro1()
'
On Error GoTo Konec

  MyString = Range("A1").Value
  D_S = Len(MyString)
 For i = 1 To D_S
  If Right(Range("A1").Value, 1) <> " " Then Exit For
   Range("A1").Value = Left(MyString, (D_S - i))
  Next i

Konec:
End Sub
Lp
Biasko
Prispevkov: 8
Pridružen: Sr Avg 17, 2005 11:58 am

Odgovor Napisal/-a Biasko »

:D aha, kar z for zanko...sem mislil da je morda kakšen enostavnejši način.Ker ima 20000 zapisov in ta excelov dokoment je ustvarjen iz neke baze in zgleda da je zraven en kup presledkov. Potem mi pa ne najde podovjenih zaradi teh presledkov. Noja kakšno podobno for zanko bi tudi sam znal, vendar sem upal na kakšno enostavnejšo rešitev:)

Najlepša hvala!
Samo
Prispevkov: 8
Pridružen: Sr Avg 24, 2005 8:40 am

Pozabil si na funkcijo RTRIM

Odgovor Napisal/-a Samo »

Za tovrstno "rezanje" se uporablja funkcija RTRIM. Makro ima sedaj eno samo vrstico. Ker imaš zapisov več, se boš moral z zanko sprehoditi po vseh vrsticah.

Koda: Izberi vse

Sub Makro1()
    Range("A1").Value = RTrim(Range("A1").Value)
End Sub
Biasko
Prispevkov: 8
Pridružen: Sr Avg 17, 2005 11:58 am

Odgovor Napisal/-a Biasko »

hvala
admin
Site Admin
Prispevkov: 3687
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Pozdravljeni,

Vaš problem lahko rešite že v Excelu samem (brez uporabe makrov). Funkcija, ki jo iščete pa se imenuje TRIM in poreže presledke spredaj in zadaj.
lp,
Matjaž Prtenjak
Administrator
Odgovori