2016-05-12 1 views
-3

Bonjour, j'essaie de réécrire \ convertir ce code en VBScript. Dans Excel 2013 fonctionne parfaitement mais dans Open Office tout ce que j'essaie de chercher, c'est qu'il n'y a pas de données (Nie znaleziono danych).Problème de conversion VBA vers VBScript

code VBA:

Sub Znajdz() 

Dim szukane As Variant 

szukane = InputBox("Wpisz szukane słowo", "Wyszukaj") 

If szukane = "" Then 
MsgBox "Nie wpisałeś nic w okienku Wyszukaj", vbOKOnly + vbExclamation,"Brak danych" 
Exit Sub 
End If 

On Error GoTo blad 

Cells.Find(What:=szukane, After:=ActiveCell, LookIn:=xlValues, LookAt:= _ 
    xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ 
    , SearchFormat:=False).Activate 

Exit Sub 

blad: 

MsgBox "Nie znaleziono danych", vbOKOnly + vbInformation, "Brak wyników" 

End Sub 

Mon VBScript:

Sub Znajdz() 

Dim szukane As Variant 

szukane = InputBox("Wpisz szukane słowo", "Wyszukaj") 

If szukane = "" Then 
MsgBox "Nie wpisałeś nic w okienku Wyszukaj", vbOKOnly + vbExclamation, "Brak danych" 
Exit Sub 
End If 

On Error GoTo blad 

Cells.Find(What:=szukane, After:=ActiveCell, LookIn:=-4163, LookAt:= _ 
    1, SearchOrder:=1, SearchDirection:=1, MatchCase:=False _ 
    , SearchFormat:=False).Activate 

Exit Sub 

blad: 

MsgBox "Nie znaleziono danych", vbOKOnly + vbInformation, "Brak wyników" 

End Sub 

Aidez-moi je dois l'utiliser Open Office comme macro

+0

VBScript ne permet pas les déclarations de type; changez 'Dim szukane As Variant' en juste 'Dim szukane'. –

Répondre

1

Open Office ne pas utiliser VBA ou VBScript pour les macros , il utilise Open Office Basic. Le OO Wiki donne une méthode pour exécuter des macros VBA; peut-être vaut le coup d'oeil?

J'ai essayé de le convertir pour vous - essayez-le? Je n'ai pas OO à portée de main donc ne peut pas tester que cela fonctionne ...

Sub Znajdz() 

Dim szukane As String 
Dim oCell As Object 
dim index As long 
Dim Find As Object 
Dim oSheet As Object 
oSheet = StarDesktop.CurrentComponent.Sheets(0) 

szukane = InputBox("Wpisz szukane słowo", "Wyszukaj") 

If szukane = "" Then 
    MsgBox "Nie wpisałeś nic w okienku Wyszukaj", MB_OK + MB_ICONEXCLAMATION, "Brak danych" 
    End 
End If 

oCell = oSheet.getCellByPosition(1,1) 
index = oCell.CellAddress.Sheet 
Find = oSheet.createSearchDescriptor 
Find.setSearchString(szukane) 
oCell = oSheet.FindFirst(Find) 
If Not IsNull(oCell) Then 
    MsgBox "Found it at " & oCell.CellAddress.Column & oCell.CellAddress.Row 
Else 
    MsgBox "Not Found!" 
Endif 

End Sub 
+0

Ok c'est une excellente option, mais encore ça ne fonctionne pas –

+0

hmm .. et juste une chose de plus que vous avez utiliser "& oCell.CellAddress.Column & oCell.CellAddress.Row" et comment faire pour marquer la cellule fondée ?? –

+0

Comment voulez-vous dire le marquer? oCell.CellAddress a la colonne et la ligne de la cellule, de sorte que vous pouvez faire tout ce que vous aimez avec ce point. Si vous voulez sélectionner la cellule elle-même, je pense que vous pourriez ajouter la ligne 'thisComponent.getCurrentController.Select (oCell)' pour activer une cellule particulière – Dave