barevnej napsal(a)Možná jen dotaz, jak zvolím jiný sloupec? Vím že se počítá od nuly ale nevím kterou tu nulu přepsat.
To potřebuje více úprav kódu. Takže místo toho vzorového, který fungoval pouze na sloupci "A" si otestujte toto :
Sub Main
Dim oDoc As Object
Dim oCtrl as Object
Dim oSelRange as Object, oCellRange as Object
oDoc = ThisComponent
oCtrl = oDoc.getCurrentController()
sTime = Timer()
oSheets = ThisComponent.Sheets()
N = oCtrl.getActiveSheet().Name 'Jméno aktivního listu ze kterého uděláme číslo (index)
oSheets = ThisComponent.Sheets
For i = 0 to oSheets.Count-1
IF oSheets(i).Name = N Then
SH = i 'číslo listu
Exit For
End If
Next i
'-------------------------------------------------------------
leftCol = 0 'Stačí přepsat tohle, protože počáteční a koncový sloupec je stejný
leftRow = 0
righCol = leftCol
righRow = LastRowWithData(righCol ,SH) - 1
oRange = oCtrl.getActiveSheet().getCellRangeByPosition(leftCol, leftRow, righCol, righRow)
dataArray = oRange.getDataArray()
For i = LBound(dataArray) To UBound(dataArray)
aRow = dataArray(i)
For j = LBound(aRow) to UBound(aRow)
IF aRow(j) = "" Then
aRow(j) = sVar
Else
sVar = aRow(j)
End IF
Next j
dataArray(i) = aRow
Next i
oRange.setDataArray( dataArray() )
eTime = Timer() - sTime
MsgBox("celkem " & righRow + 1 & " řádků bylo zpracováno za " & eTime & " vteřin.", "Konec")
End Sub
Function LastRowWithData (ColumnIndex as long, SheetIndex as long) as long
Dim oCursor As Object, oRange As Object, oSheet As Object
Dim LastRowOfUsedArea as long, R as long
Dim RangeData
oSheet = ThisComponent.Sheets(SheetIndex)
oCursor = oSheet.createCursor
oCursor.gotoEndOfUsedArea(False)
LastRowOfUsedArea = oCursor.RangeAddress.EndRow
oRange = oSheet.getCellRangeByPosition(ColumnIndex, 0, ColumnIndex, LastRowOfUsedArea)
oCursor = oSheet.createCursorByRange(oRange)
RangeData = oCursor.getDataArray
For R = UBound(RangeData) To LBound(RangeData) Step - 1
If RangeData(R)(0) <> "" then
LastRowWithData = R
Exit Function
End If
Next
End Function
Stačí zadat sloupec na jediném místě leftCol = 0.
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ