[Rozwiązane] Zamiana \ w zmiennej na _

Makropolecenia i funkcje w języku Basic
osclbn
Posty: 2
Rejestracja: pt wrz 23, 2016 11:26 am

[Rozwiązane] Zamiana \ w zmiennej na _

Post autor: osclbn »

Witam,
Obecnie w swoich dokumentach próbuję wykorzystać makro zapisujące arkusz jako PDF. Makro znalazłem na angielskiej wersji forum i zmodyfikowałem pod siebie. Obecnie wygląda ono tak:

Kod: Zaznacz cały

REM  *****  BASIC  *****
Sub SaveAs

   Dim sFileName1 As String
   Dim sFileName2 As String
   Dim sFileName3 As String
   Dim sBackslash As String
   Dim sPath As String
   Dim sSaveToURL as string
   
   GOD = Format(Time, "hh-mm-ss") 
   sPath = "y:\archiwum\"
   sFileName1 = thisComponent.getSheets.getByName("Specyfikacja").getCellRangeByName("H7").getString ' Komórka zawsze ma wartość "Słowo\Numer"
   sFileName2 = thisComponent.getSheets.getByName("Specyfikacja").getCellRangeByName("C12").getString ' Wartość to data w formacie DD.MM.RRRR
   sFileName3 = thisComponent.getSheets.getByName("Specyfikacja").getCellRangeByName("H9").getString ' Wartość do słowo
   sBackslash = "\"
   sSaveToURL = ConvertToURL(sPath & sFileName2 & sBackslash & sFileName1 & "_" & sFileName3 & "_" & GOD & ".pdf")
   thisComponent.storeToUrl(sSaveToURL, Array(MakePropertyValue("FilterName", "calc_pdf_Export")))
   
End Sub

Function MakePropertyValue(Optional sName As String, Optional sValue) As com.sun.star.beans.PropertyValue
'-------------------------------------------------------------------
' Create and return a new com.sun.star.beans.PropertyValue
'-------------------------------------------------------------------

    Dim oPropertyValue As New com.sun.star.beans.PropertyValue
    
    
    If Not IsMissing(sName) Then
       oPropertyValue.Name = sName
    EndIf
    
    If Not IsMissing(sValue) Then
       oPropertyValue.Value = sValue
    EndIf
    
    MakePropertyValue() = oPropertyValue

End Function
Posiadam taki problem, że przez znak backslasha w komórce H7 tworzy mi katalog o nazwie "Słowo" i nazwa pliku zaczyna się od "Numer". Potrzebowałbym zmodyfikować makro tak, aby w zmiennej sFileName1 zamienić backslash na "_", bez ingerencji w to co jest wpisane w arkuszu.
Czy jesteście w stanie mi pomóc?
Ostatnio zmieniony pt wrz 23, 2016 1:26 pm przez osclbn, łącznie zmieniany 1 raz.
OpenOffice 4.1.2 na Windows 7
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Zamiana \ w zmiennej na _

Post autor: belstar »

Kod: Zaznacz cały

Sub Podmien
	dim slowo as string
	slowo = "ala/ela"
	slowo = Replace(slowo, "/", "_")
	print slowo
End Sub
LibreOffice 5.1.2.2 Ubuntu 16 LTS
osclbn
Posty: 2
Rejestracja: pt wrz 23, 2016 11:26 am

Re: Zamiana \ w zmiennej na _

Post autor: osclbn »

Dziękuję! Rozwiązanie było bardzo proste :)
OpenOffice 4.1.2 na Windows 7
ODPOWIEDZ