Problem z makrem vba w OO

Dyskusje dotyczące tworzenia makropoleceń, pisania skryptów oraz programowania przy użyciu UNO
hand1
Posty: 2
Rejestracja: śr paź 01, 2014 9:20 pm

Problem z makrem vba w OO

Post autor: hand1 »

Witam wszystkich
Jestem początkującym użytkownikiem pakietu OO. Wykorzystuję go zarówno w pracy jak i w domu. Mam programik excelowski, w którym po podaniu np nazwy ulicy pokazuje jej nazwę wraz z nr. Dotychczas z bazy ponad 2 tys ulic i ciągów komunikacyjnych operowałem klawiszami "CTRL +H". Byłbym bardzo wdzięczny za przetłumaczenie kodu makra. Mimo że było tłumaczone przez translator, to jednak wykazuje błędy.
Zatrzymuje się na tej linii kodu:

Kod: Zaznacz cały

 If Intersect(Target, [search_string]) Is Nothing
Wiem, że dużo jest tego typu postów o "gotowce" to może mogę liczyć na Waszą pomoc. Dziękuję z góry

Kod: Zaznacz cały

Option Explicit

Private Sub Worksheet_Activate()

    [search_string] = "Wpisz zapytanie."
    [search_string].Select

End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

    
    Const CRITERIA_HEADER = "Ulica / ciąg komunikacyjny"
    Const TEMPORARY_NAME_CREATED_BY_ADVANCED_FILTER = "Extract"
    
    ' If change was from any cell other than our lookup, then exit
   If Intersect(Target, [search_string]) Is Nothing Then Exit Sub
    [search_string].Select
        
    
    Unprotect
    With Application
        ' Clear previous search results
        .Calculation = xlCalculationManual
        [result].ClearContents
    
        ' Do search
        [filter_criteria] = .Transpose(Array(CRITERIA_HEADER, "*" & [search_string] & "*"))
        [database].AdvancedFilter xlFilterCopy, [filter_criteria], [result_target]

        ' Clean up
        [filter_criteria] = vbNullString
        Names(TEMPORARY_NAME_CREATED_BY_ADVANCED_FILTER).Delete
        .Calculation = xlCalculationAutomatic
    End With
    Protect

End Sub
LibreOffice 4.3.2.2 windows7
Jan_J
Posty: 4653
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Problem z makrem vba w OO

Post autor: Jan_J »

Będzie co nieco roboty.
Nazwa procedury wskazuje, że jest ona używana jako obsługa zdarzenia. Mechanizm przypisywania zdarzeń w Calcu jest zupełnie inny, i wymaga użycia obiektów nasłuchujących (listenerów).
Poza tym konstrukcja Twoich funkcji opiera się na wysokopoziomowych wywołaniach API Excela. Musiałby się im przyjrzeć ktoś, kto na codzień pracuje z Excelem.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
hand1
Posty: 2
Rejestracja: śr paź 01, 2014 9:20 pm

Re: Problem z makrem vba w OO

Post autor: hand1 »

No cóż nie mam zielonego pojęcia jak to ugryźć. Jeżeli można proszę o jakieś naprowadzenie.
LibreOffice 4.3.2.2 windows7
ODPOWIEDZ