Forum » Programiranje » Excel VBA in iskanje zadnje "polne" celice
Excel VBA in iskanje zadnje "polne" celice
borzon ::
Pozdravljeni,
Ker se komaj učim programeranja me zanima naslednje.
Rad bi napisal Makro, ki npr. sešteje dve celici A1 in B1 (bistvo ni v seštevanju ampak v kodi, ki išče zadnji polni vrstici). Naj poudarim, da mora biti tukaj koda za makro in ne zgolj "funkcija", ker bo koda del malo večje kode.
Torej zanima me kako napisati kodo za makro, ki bo pregledala stolpec A in B ter poiskala zadnjo polno celico ter vse celice A in B seštela medsebojno.
hvala
Ker se komaj učim programeranja me zanima naslednje.
Rad bi napisal Makro, ki npr. sešteje dve celici A1 in B1 (bistvo ni v seštevanju ampak v kodi, ki išče zadnji polni vrstici). Naj poudarim, da mora biti tukaj koda za makro in ne zgolj "funkcija", ker bo koda del malo večje kode.
Torej zanima me kako napisati kodo za makro, ki bo pregledala stolpec A in B ter poiskala zadnjo polno celico ter vse celice A in B seštela medsebojno.
hvala
kljuka13 ::
Na prvi pogled bi sicer rekel, da poskušaš verjetno doseči nekaj drugega, pa to počneš na morda nekoliko neroden način. Pa vendar, zaporedno število zadnje neprazne vrstice v stolpcu A lahko poiščeš z
Verjetno pa ti bomo lažje pomagali, če napišeš, kaj zares želiš doseči. Še najbolje, da pokažeš kak dejanski primer (zaslonski posnetek) in želeni rezultat.
ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
Verjetno pa ti bomo lažje pomagali, če napišeš, kaj zares želiš doseči. Še najbolje, da pokažeš kak dejanski primer (zaslonski posnetek) in želeni rezultat.
prtenjam ::
Za iskanje zadnje izpolnjene celice na celotnem listu (torej ne samo v koloni A ali B...) pa je potrebno uporabiti tole kodo:
Dim vrstica As Long: vrstica = Cells.Find("*", searchorder:=xlByRows, searchdirection:=xlPrevious).Row
Matjaž Prtenjak
https://mnet.si
https://mnet.si
smetko ::
Podajam ti kodo, katero sem nekoč uporabljal za razbijanje podatkov, mogoče ti bo v pomoč. Z malo spremembami se jo da uporabiti tudi za tvoj namen. Osnovni namen je bil razbijanje piimka in imena v dva stolpca.
Slabost te funkcije je, da zaznava konec vse tabele, ne pa konec podatkov zato sem pred obdelavo počistil prazne stolpce. "Excel How To Delete Extra Blank Cells From Sheets" ti bo v pomoč pri iskanju rešitve. S tem sem tudi zmanjšal velikost datoteke, ter pohitril izvajanje obdelav. Če se boš dovolj potrudil, boš za to našel tudi makroje.
Slabost te funkcije je, da zaznava konec vse tabele, ne pa konec podatkov zato sem pred obdelavo počistil prazne stolpce. "Excel How To Delete Extra Blank Cells From Sheets" ti bo v pomoč pri iskanju rešitve. S tem sem tudi zmanjšal velikost datoteke, ter pohitril izvajanje obdelav. Če se boš dovolj potrudil, boš za to našel tudi makroje.
Sub PriimekInIme() Dim rng As Range Set ObjExcel = Excel.Application ' če je izbrana samo ena celica v koloni potem izbere celotno kolono Set rng = Selection.Cells If rng.Rows.Count = 1 Or rng.Rows.Count = ActiveSheet.Rows.Count Then Range(Cells(rng.Row + 1, rng.Column), _ Cells(ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row, rng.Column)).Select Set rng = Selection.Cells End If rng.Offset(, 1).Resize(, 2).EntireColumn.Insert ' Dodajanje 2 stoplcev rng(1, 1).Offset(-1, 1).Value = "PRIIMEK" ' Naslov prvega dodanega stoplca rng(1, 1).Offset(-1, 2).Value = "IME" ' Naslov drugega dodanega stoplca ' Obdelaj vsako vhodno celico For Each rng In Selection.Cells rng.Value = ObjExcel.Application.Clean(Trim(rng.Value)) ' počisti simbole rng.Value = Replace(Replace(rng.Value, "-", " "), " ", " ") ' zamenja "-" in dvojne presledke If InStr(rng.Value, " ") > 0 Then ' če najde vsaj en presledek rng.Offset(0, 1).Value = UCase(Left(rng.Value, InStrRev(rng.Value, " ") - 1)) rng.Offset(0, 2).Value = UCase(Right(rng.Value, Len(rng.Value) - InStrRev(rng.Value, " "))) Else rng.Offset(0, 1).Value = UCase(rng.Value) End If Next Set rng = Nothing Set ObjExcel = Nothing End Sub
No comment
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | excelOddelek: Programska oprema | 4767 (3376) | xtrat |
» | excel+visual basicOddelek: Pomoč in nasveti | 1561 (1448) | švrk |
» | Makroji v exceluOddelek: Programska oprema | 2478 (2372) | smetko |
» | [Excel]Vrednost celice = ime dokumentaOddelek: Programska oprema | 4751 (4173) | veteran |
» | Visual Basic in ExcelOddelek: Programiranje | 2675 (2241) | Vesoljc |