2017-04-13 1 views
0

Je me suis récemment converti à utiliser LibreCalc sur MS Excel. J'ai un certain nombre de Macros Excel que je voudrais utiliser dans LibreCalc, dont plusieurs utilisent la fonction Application.InputBox. J'ai activé le support VBA dans LibreCalc, mais malheureusement la fonction n'est pas reconnue. Voici un exemple du code -Fonction Equivalent LibreCalc à 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' 

En MSExcel, la fonction Application.InputBox avec type = 8 se traduirait par une zone de saisie apparaît, et qui permettrait à l'utilisateur d'entrer une plage de cellules dans la zone d'entrée . Avec la fonction Basic InputBox habituelle, les plages de cellules ne peuvent pas être entrées.

Y a-t-il une fonction équivalente dans LibreCalc, ou existe-t-il une manière différente de sélectionner manuellement une plage de cellules et de l'assigner à un argument qui peut ensuite être appelé dans la macro?

Répondre

0

Vous pouvez utiliser la même fonction d'exécution dans CALC:

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

Vous pouvez passer range comme une chaîne à cette fonction aussi:

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

Résolu - merci. –