VBA到VBScript转换麻烦

时间:2016-05-12 10:37:53

标签: vba vbscript openoffice.org

您好我正在尝试重写\将此代码转换为VBScript。在Excel 2013工作完美,但在Open Office,无论我想搜索什么,都没有数据(Nie znaleziono danych)。

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

我的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

帮助我,我必须在Open Office中使用它作为宏

1 个答案:

答案 0 :(得分:1)

Open Office不使用VBA或VBScript作为宏,它使用Open Office Basic。

OO Wiki提供了一种执行VBA宏的方法;也许值得一看?

我试图为你转换它 - 尝试一下?我手上没有OO所以无法测试它的工作原理......

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