< návrat zpět

MS Excel


Téma: Číslo řádku s dvojitým dolním ohraničením rss

Zaslal/a 17.4.2019 14:10

Zdravím, v listu excelu mám na dvou (různých) řádcích dvojité dolní ohraničení.

Poradil by mi někdo prosím, jakým způsobem pomocí VBA zjistit číslo řádku, na kterém se nachází druhý řádek s tímto ohraničením?

díky moc

img

Zaslat odpověď >

#043184
elninoslov
Napr.:
Sub Makro1()
Dim rngBunka As Range
With Application.FindFormat.Borders(xlEdgeBottom)
.LineStyle = xlDouble
.ColorIndex = xlAutomatic
.TintAndShade = 0
.Weight = xlThick
End With

With ActiveSheet.Columns("K:K")
Set rngBunka = .Find(What:="", After:=.Cells(Rows.Count), LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=True)
End With

If Not rngBunka Is Nothing Then rngBunka.Activate
End Sub
citovat
#043189
avatar
Jsem asi dnes nějak intelektuálně indisponován, ale nějak mi to nefunguje. Jak se z toho kódu dozvím číslo inkriminovaného řádku? Potřebuji číslo řádku uložit do proměnné a dál s ním pracovat.

díky moccitovat
#043191
elninoslov
Napr.:
If Not rngBunka Is Nothing Then Moja_Oblubena_Premenna = rngBunka.Row

Alebo do inkriminovanej časti doplnte:
On Error Resume Next
With ActiveSheet.Columns("K:K")
Moja_Oblubena_Premenna = .Find(What:="", After:=.Cells(Rows.Count), LookIn:=xlFormulas, LookAt:=xlPart, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False, SearchFormat:=True).Row
End With
On Error GoTo 0


V oboch prípadoch definujte Moja_Oblubena_Premenna ako Long
Dim Moja_Oblubena_Premenna as Longcitovat
#043192
avatar
tak bohužel.. když vyvolám hodnotu proměnné přes msgbox, objeví se okno s hodnotou 0 4
Příloha: zip43192_test1.zip (18kB, staženo 22x)
citovat
#043193
elninoslov
Akú máte verziu Office ? Mne ten Váš súbor funguje správne (Office 2019 x64 SK)citovat
#043194
avatar
Mám Microsoft Office Proffesional Plus 2016

Ještě zkusím otestovat v práci. Zatím jsem se nesetkal s tím, že by mi v této verzi excelu něco nefungovalo.

Tohle mi ale funguje.. jen bych to potřeboval omezit na druhý řádek. Takhle mi to vrací čísla obou řádků..

Private Sub CommandButton2_Click()

Dim my_range As Range
Dim c As Variant
Dim radek As Long

Set my_range = ActiveSheet.Range("K1:K1000")

For Each c In my_range
If c.Borders(xlEdgeBottom).LineStyle = xlDouble Then
radek = c.Row
MsgBox radek
End If
Next
End Sub
citovat
#043196
elninoslov
Hmm, problém bude možno v nejakej MS kulišárne. Takýto rýchly postup FindFormat totiž funguje iba a len, ak pred spustením makra rovnakým spôsobom dám prehľadať cez Ctrl+F formát, kde nastavím dvojitú čiaru a dám hľadať. Ak toto nahrám cez záznamník, funguje, ale iba do prípadu, pokým nevynulujem nastavenie hľadacieho okna. Ak to urobím, makro prestane fungovať, aj keď v makre nastavujem presne to isté čo nahral záznamník. Presne rovnako sa to správa na Office 2010, 2016, 2019. Musí byť najskôr použité manuálne hľadanie.

Bolo by to oproti prehľadávaniu buniek po jednej rýchlejšie. Možno niekto niečo poradí.

Ak teda cez cyklus, a jedná sa o jednotnú oblasť (jeden stĺpec) tak skúste hľadať odzadu pomocou Cells(y,x). Pretože potrebujete nájsť poslednú (alebo iba presne druhú čiaru ???, potom Vám tam chýba ukončenie cyklu po nájdení), nie všetky od začiatku.citovat
#043204
avatar
hmmm tak to je mi záhada. Zkouším to obejít přes cyklus, ale potřebuji právě druhý výskyt, jelikož se další dvojité řádky teoreticky mohou vyskytovat i v dalších řádcích..

a to zatím nevím jak 4citovat
#043206
elninoslov
Private Sub CommandButton2_Click()
Dim my_range As Range
Dim c As Range
Dim radek As Long
Dim Pocet As Long

Set my_range = ActiveSheet.Range("K1:K1000")

For Each c In my_range.Cells
If c.Borders(xlEdgeBottom).LineStyle = xlDouble Then
Pocet = Pocet + 1
If Pocet = 2 Then radek = c.Row
End If
Next c
MsgBox radek
End Sub
citovat
#043207
avatar
Teda Vy jste rychlík :-) Děkuji moc. Já měl myšlenku, že bych číslo řádku z prvního výskytu uložil do proměnné a pak pomocí této proměnné omezil prohledávanou oblast. To by asi také šlo, nicméně tohle je podstatně jednodušší.citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje