Excel - Vba umetanjem retka i zadržavanjem članstva u rasponu
Problem
U VBA, kako mogu kopirati / umetnuti (na mjestu) redak i osigurati da, ako je izvorni red presjekao raspon stupaca, da bi novi red također bio u rasponu i da će raspon rasti za 1 (tj. Umetnuti redak),Ako se pokazivač nalazi na retku koji se nalazi na vrhu raspona, novi redak ne postaje član raspona, a raspon ne povećava veličinu za jedan redak.
xlUp i xlDown ne čine razliku, niti ih napuštaju (što Excel kaže da je najbolja stvar ako se sijeku rasponi stupaca).
Riješenje
Učinit ću ga potpuno automatskim. Ne trebate imenovati raspon. makro "test" to radi. samo ulaz koji trebate staviti je da morate upisati broj retka koji želite izbrisati za npr. 2 ili 3 ili 4 kada se pojavi okvir za unos. Makro "poništi" poništava ono što makro radi.Baza podataka je takva od A1 do A5
1
2
3
4
5
nemojte ništa raditi samo pokrenite makro "test" (oba makronaredba trebala bi se kopirati u modul). Nažalost, ovo je postala zamršena makronaredba. Pokušao sam koristiti "veličinu". nekako nisam uspio. Možda neki stručnjak može dati bolje rješenje. Ali ovo rješenje funkcionira. ako želite da se raspon imenovanog raspona razlikuje, izmijenite ovu izjavu u makro "testu" kako bi vam odgovarao
Raspon ("A2: a4"). Name = "myrange"
Makronaredbe su:
Makro 1
Sub test ()Dim r As Range, j As Integer, k As Integer, m As Integer
otkopčati
Raspon ("A2: a4"). Name = "myrange"
Postavi r = Raspon ("myrange")
m = Radna listaFunction.Count (r)
'MsgBox m
k = InputBox ("upišite broj retka koji se odabire")
Redova (k) .Odaberite
Postavi r = Raspon ("myrange")
j = Raspon ("myrange"). Ćelije (1, 1)
'MsgBox j
Selection.Rows.Insert
Ako je Selection.Row = j Zatim
ActiveWorkbook.Names ( "myrange"). Delete
Raspon (ćelije (odabir, redak, "A"), r.vrha (m, 1)) Naziv = "myrange"
Završi ako
Raspon MsgBoxa ("myrange"). Adresa
Kraj pod
Makro 2
Sub poništi ()Dim As As Range, c As Range
Postavi r = Raspon (raspon ("A1"), ćelije (redovi, broj "A"). Kraj (xlUp))
Za svaki c U r
Ako je c = "" Zatim c.EntireRow.Delete
Sljedeće c
Kraj pod