Excelove funkcije v VBA

Pomoč pri delu z MS Excelom
Odgovori
deraleks
Prispevkov: 24
Pridružen: Sr Feb 28, 2007 10:28 pm

Excelove funkcije v VBA

Odgovor Napisal/-a deraleks »

Imam stolpec s števili (do 8 mestna). Naslednji stolpec prikazuje število znakov v predhodnem stolpcu. V naslednje stolpce bi želel izpisati vsak znak števila v svojo celico. Izdelal sem makro, ki sicer pravilno prostorsko izpisuje števila, vendar ne izpiše predmetnega znaka, ampak "#IME?". Izpis posameznega znaka števila sem izvedel s funkijo [res = "=MID(RC1,n,1)"], ki se očitno v tej zvezi ne izvede. Kaj tukaj ni dobro?
Coda pa je naslednja:

Koda: Izberi vse

Sub celica()

Dim res As String
               
            While Not IsEmpty(ActiveCell)
                    y = Selection.Row
                    Text = Cells(y, 1).Value    'Text
                    Leng = Selection.Offset(0, 1).Value  'Dolžina niza
                    Zamik = 8 - Leng  'Zamik
            
                        For n = 1 To Leng
                        res = "=MID(RC1,n,1)"
                        Cells(y, n + Zamik + 3).Formula = res
                        Next n
                
                    ActiveCell.Offset(1, 0).Select
                
            Wend
            
End Sub
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Že kot prvo mi ni jasno, kaj je to RC1? Ali se številke kasneje spreminjajo alo so statične? Koda:

Koda: Izberi vse

Sub celica()

Dim res As String
               
            While Not IsEmpty(ActiveCell)
                    y = Selection.Row
                    Text = Cells(y, 1).Value    'Text
                    Leng = Selection.Offset(0, 1).Value  'Dolžina niza
                    Zamik = 8 - Leng  'Zamik
           
                        For n = 1 To Leng
                        res = "=MID(" & Range("A" & y).Address & "," & n & ",1)"
                        Cells(y, n + Zamik + 3).Formula = res
                        Next n
               
                    ActiveCell.Offset(1, 0).Select
               
            Wend
           
End Sub
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
deraleks
Prispevkov: 24
Pridružen: Sr Feb 28, 2007 10:28 pm

Dobro to

Odgovor Napisal/-a deraleks »

Deluje. Dosedaj sem excelove formule, vedno izvajal na delovnem listu in jih z VBA samo poganjal. Zapis range in address še nisem uporabljal. Hvala.
Odgovori