[ ZorzNS @ 19.11.2012. 23:04 ] @
| Treba mi kod za makro koji bi pomerio vertikalni sektor ABCDEF1 do ABCDEF300 na dole, za jedno polje, ali tako da se ne prekopiraju i formule, vec samo numerichke vrednosti. S tim da posle tog pomeranja prve celije od gore ABCDEF1 ostanu prazne. Hvala unapred :) |
[ Dexxxl @ 20.11.2012. 12:18 ] @
Napravi ga sam pomoću snimača.
1/ idi na tols/macros/record new macro
2/ klikni OK
3/ izvedi operaciju koju želiš ( selektuj - desni klik/cut - desni klik/ paste special - cekiraj values - OK)
4/ pritisni dugme STOP na toolbaru koji je izašao kad si počeo da snimaš
Odličan način za učenje VB-a je da snimaš macroe i kasnije proučavaš kod koji je računar sam napravio
[ ZorzNS @ 20.11.2012. 20:44 ] @
To znam i sam, vec probao, nisam mislio na tu varijantu.. Tako radi presporo, dok ga obelezi pa iskopira pa obrishe prvi red.. Mislio sam na neku jednostavniju varijantu, evo bash sad uspeh da izguglam, neshto ovako:
Range("A1:E1").Offset(1).Insert xlDown, True
Range("A1:E1").Offset(1).Value = Range("A1:E1").Value
Vidish kolko brze radi.. :)
E sad jedino mi je tu problem to shto mi i dalje ostaje prvi red upisan, a meni treba da bude obrisan - da mi se bukvalno odradi MOVE za red na dole, a ne da prekopira na dole.. I treba mi da mi posle 300tog reda ne zapisuje nishta..
[ ZorzNS @ 20.11.2012. 21:04 ] @
Nishta evo uspeo sam.. Reshih ga.. Gugl je chudo :) evo kako izgleda code
Range("A1:E1").Offset(1).Insert xlDown, True
Range("A1:E1").Offset(1).Value = Range("A1:E1").Value
Range("A1:E1").ClearContents
Range("A301:E301").ClearContents
I to je to.. Radi mnogo brze nego kad bi to isto uradio sa snimanjem makroa... :)
[ 3okc @ 20.11.2012. 21:26 ] @
Da li i ovo radi isti posao?
Code:
With Range("a1:e300")
.Cut Destination:=.Offset(1)
End With
[ ZorzNS @ 20.11.2012. 22:15 ] @
Pa da mogu ti reći da radi isti posao! :D Pa super eto još jednostavnijeg rešenja! Hvala :)
[ ZorzNS @ 20.11.2012. 22:34 ] @
Ustvari ne valja, poshto kopira i formule... :/
[ 3okc @ 21.11.2012. 07:50 ] @
Naravno da kopira. Referenciranje tako i radi, u tome je suština. Formula će se uvek prilagoditi na izmene u okruženju.
Za fiksiranje reference koristi se neka od funkcija za indirektno referenciranje: ADDRESS, INDIRECT, OFFSET.
Npr, ako si u formuli uzimao vrednost iz "ćelije desno" odnosno iz prve kolone desno, umesto njene reference npr G20 (ili već, ma koje) piši INDIRECT("rc[1]";0). I sada možeš da premeštaš blok ćelija, uvek će čitati iz susedne ćelije jer je referenca unutar navodnika.
A što se umetanja tiče, za to ti ni ne treba makro, prečica sa tastature je 'CTRL+' i obično je već prva opcija pomeranje nadole tako možeš odmah da potvrdiš sa 'Enter'.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.