none
Visual basic - vyhledat bunku a oznacit

    Dotaz

  • Zdravím, učím se ve Visual Basicu a narazil jsem na problém.

    Pracuji s následujícím kódem. Snažím se v něm vyhledat text J.Cena [CZK], a od buňky s tím to textem začít další kroky definované pomocí UDF funkce. Jde jistě o jednoduchý krok, ale mohl by mi někdo poradit, jak získat a dále pracovat s adresou buňky, ve které byl daný text nalezen?

    Adresa je v kódu označena X a za příkazem "Do" od ní chci počítat počet řádků a také získat číslo sloupce z této adresy....Problém tedy je, jak zapsat referenci. 

    Děkuji mnohokrát

    Private Sub CommandButton1_Click()
        Dim LastRow As Long
        Dim SearchString As String
        Dim SearchRange As Range, cl As Range
        Dim FirstFound As String
        Dim sh As Worksheet

        ' Set Search value
        SearchString = "J.cena [CZK]"
        Application.FindFormat.Clear
        ' loop through all sheets
        For Each sh In ActiveWorkbook.Worksheets
            ' Find first instance on sheet
            Set cl = sh.Cells.Find(What:=SearchString, _
                After:=sh.Cells(1, 1), _
                LookIn:=xlValues, _
                LookAt:=xlWhole, _
                SearchOrder:=xlByRows, _
                SearchDirection:=xlNext, _
                MatchCase:=False, _
                SearchFormat:=False)
            If Not cl Is Nothing Then
                ' if found, remember location
                FirstFound = cl.Address
                ' format found cell
                Do
                
                
                
                   
                   
                   
                    LastRow = Cells.Find("*", [X], , , xlByRows, xlPrevious).Row
                    For i = 1 To LastRow
                    ThisCell = Cells(i, "L").Value
                    ActiveCell.FormulaR1C1 = _
                    "=IF(ColorIndexOfOneCell(RC,FALSE,1)=19,VLOOKUP(RC[-7],'C:\Users\Honza\Documents\Prace\test\N13130-33kpl.xlsx'!R19C1:R1964C11,9,FALSE),"""")"
                    ActiveCell.Offset(1, 0).Range("A1").Select
                    Next
                    ' find next instance
                    Set cl = sh.Cells.FindNext(After:=cl)
                    ' repeat until back where we started
                Loop Until FirstFound = cl.Address
            End If
        Next
    End Sub


    8. srpna 2013 17:24

Odpovědi