У меня есть электронная таблица, с которой пользователи будут работать как в Excel, так и в LibreOffice Calc. Я хотел бы разработать макросы, которые будут работать в обоих. Я думал о коде, который сказал бы: если Excel, то [код VBA], остальное [базовый код или код Python]
Я думаю, что эти два ключа были бы оператором IF/THEN (или эквивалентным), который могли бы прочитать обе программы, и способом гарантировать, что обе программы будут игнорировать код, который не применим к ним.
Я уже пытался запустить его в LibreCalc, но он не будет работать. Вот код, который мне нужно запустить в Excel и Calc:
Public Sub spubInsertCurrDateTimeText()
'DESCRIPTION: inserts current date and time into the active cell in text format.
Dim dtmNow As Date
Dim CurrTemp As Date
Dim CurrTot As Date
Dim NewTot As Date
Dim StartCol As Integer
Dim StopCol As Integer
Dim ClockTimerCol As Integer
Dim TotalTimeCol As Integer
dtmNow = Now 'sets variable to value of function NOW (current date/time)
StartCol = 1 'this is the column where the user enter the starting time
StopCol = 2 'this is the column where the user enter the ending or stop time
ClockTimerCol = 3 'this is the column that calculates elapsed time (StopCol minus StartCol)
TotalTimeCol = 4 'this is the column that tracks the total time elapsed in minutes
If ActiveCell.Column = StartCol Then
ActiveCell = dtmNow 'inserts variable into the active cell
Worksheets(ActiveSheet.Name).Cells(ActiveCell.Row, StopCol).Value = 0
ElseIf ActiveCell.Column = StopCol Then
ActiveCell = dtmNow 'inserts variable into the active cell
CurrTot = Worksheets(ActiveSheet.Name).Cells(ActiveCell.Row, TotalTimeCol).Value
CurrTemp = Worksheets(ActiveSheet.Name).Cells(ActiveCell.Row, ClockTimerCol).Value
NewTot = CurrTot + (CurrTemp * 1440)
Worksheets(ActiveSheet.Name).Cells(ActiveCell.Row, TotalTimeCol).Value = NewTot
Worksheets(ActiveSheet.Name).Cells(ActiveCell.Row, StartCol).Value = 0
Worksheets(ActiveSheet.Name).Cells(ActiveCell.Row, StopCol).Value = 0
Else
ActiveCell = dtmNow 'inserts variable into the active cell
End If
End Sub
Какие-либо предложения?