< návrat zpět
MS Excel
Téma: Poslední obsazený sloupec z určité oblasti
Zaslal/a Imh0tep 8.4.2019 21:33
Ahoj,
poradí prosím někdo, jak pomocí cells vyhledat poslední obsazený sloupec v určité oblasti? (např. A2:AZ2)
rc = .Cells(n, Columns.Count).End(xlToLeft).Column
PS: ani s pomocí range mi bohužel nejde vymezit prohledávanou oblast
tento kód mi vrací hodnotu 4 i když mám oblast omezenu na A2:C2 (neprázdné buňky jsou A2, B2, C2, D2)
alfa = Range("A2:C2").End(xlToRight).Column
díky moc
Dingo(9.4.2019 8:27)#043116 xlToRight: z poslední pozice doprava to nic asi nenajde. Ten první vzorec vypadá správně, jen co je v n? Toto mi funguje ok:
cislo_posl_sl = Cells(2, Columns.Count).End(xlToLeft).Columncitovat
Ale on nechce celý riadok, ale len oblasť. Na ohraničenú oblasť funguje takéto niečo:
Public Function PoslednaBunka(Oblast As Range) As Range
Dim Bunka As Range
Set Oblast = Oblast.Areas(1).Rows(1)
Set Bunka = Oblast.Cells(Oblast.Cells.Count)
If Not IsEmpty(Bunka) Then
Set PoslednaBunka = Bunka
Else
Set PoslednaBunka = Oblast.Find(What:="*", After:=Bunka, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
End If
End Function
Vyberie si prvú Area (podoblasť v prípade multivýberu) a jej prvý riadok. A tam zistí poslednú vyplnenú bunku. Ak nieje žiadna vyplnená tak Nothing. Myslím, že na toto ste sa pýtal.
citovat
Imh0tep(16.4.2019 8:17)#043166 Nakonec jsem to vyřešil jiným způsobem:
rc = .Cells(n, 50).End(xlToLeft).Column ' omezení na sloupec číslo 50 (AX)
každopádně děkuji za pomoc
citovat