Merging is evil. If you insist to merge cells in a range row by row you will need user code. In LibreOffice Basic:
Sub mergeRowByRow(Optional pSheetCellRange as Object, Optional pSeparator As String)
If IsMissing(pSheetCellRange) Then pSheetCellRange = ThisComponent.CurrentSelection
If IsMissing(pSeparator) Then pSeparator = ""
If NOT pSheetCellRange.supportsService("com.sun.star.sheet.SheetCellRange") Then Exit Sub
uR = pSheetCellRange.Rows.Count - 1
uC = pSheetCellRange.Columns.Count - 1
For j = 0 To uR
j_Lead = pSheetCellRange.getCellbyPosition(0, j)
j_Rg = pSheetCellRange.getCellRangeByPosition(0, j, uC, j)
j_DA = j_Rg.getDataArray
newString = Join(j_DA(0), pSeparator)
j_Rg.ClearContents(7)
j_Lead.String = newString
j_Rg.Merge(True)
Next j
End Sub
Did I tell you that merging is evil?