2017-04-13 2 views
0

Ich habe vor kurzem konvertiert, um LibreCalc über MS Excel zu verwenden. Ich habe eine Reihe von Excel-Makros, die ich in LibreCalc verwenden möchte, von denen einige die Application.InputBox-Funktion verwenden. Ich habe VBA-Unterstützung in LibreCalc aktiviert, aber leider wird die Funktion nicht erkannt. Hier ist ein Beispiel für den Code -LibreCalc Equivalent-Funktion zu Excel Application.InputBox

Rem Attribute VBA_ModuleType=VBAModule 
Option VBASupport 1 
Sub Project_Data_Sort_By_Date() 

Dim x As Long 
Dim StartCont As Double 
Dim EndCont As Double 
Set R = Selection 'Select data range' 
RowCnt = R.Rows.Count 
colcnt = R.Columns.Count 
Set TheTimes = Application.InputBox("Please enter time range: ", "User input", Type:=8) 'Times is corrected full data range of sample period' 

In MSExcel, die Application.InputBox Funktion mit type = 8 in einem Eingabefeld führen würde erscheinen, und die der Benutzer einen Bereich von Zellen in das Eingabefeld eingeben erlauben würde, . Mit der üblichen Funktion Basic InputBox können keine Zellenbereiche eingegeben werden.

Gibt es also in LibreCalc eine gleichwertige Funktion, oder gibt es eine andere Möglichkeit, einen Bereich von Zellen manuell auszuwählen und einem Argument zuzuordnen, das später im Makro aufgerufen werden kann?

Antwort

0

Sie die gleiche Laufzeitfunktion in CALC verwenden können:

range = Inputbox("Please enter time range:", "User input") 
Times = ThisComponent.Sheets().getByIndex(0).getCellRangeByName(range) 

Sie range als String an dieser Funktion übergeben kann, auch:

Times = ThisComponent.Sheets().getByIndex(0).getCellRangeByName("B2:C10") 
+0

Gelöst - danke. –