Sorry, it is very basic and probably really really obvious question. How do you pass a named range and page name into a function.
I want to tidy up this code, by splitting it into two, and just having a sub that takes the names and another that just passes the name to the first function, instead of repeating the whole code nine times. Hope that makes sense.
Sub AdvancedRangeFilterV5()
Dim oSheet 'A sheet from the Calc document.
Dim oRanges 'The NamedRanges property.
Dim oCritRange 'Range that contains the filter criteria.
Dim oDataRange 'Range that contains the data to filter.
Dim oFiltDesc 'Filter descriptor.
REM Range that contains the filter criteria
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("aaLarge")
REM The data that you want to filter
oSheet = ThisComponent.Sheets.getByName("Large")
oDataRange = oSheet.getCellRangeByName("Large")
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem first repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("aaLargeSaying")
oSheet = ThisComponent.Sheets.getByName("largeNsaying")
oDataRange = oSheet.getCellRangeByName("LargeNsaying")
rem passed to this
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem second repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("aaLargeType")
oSheet = ThisComponent.Sheets.getByName("largeNtype")
oDataRange = oSheet.getCellRangeByName("LargeNtype")
rem passed to this again
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem Third repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("bbMedium")
oSheet = ThisComponent.Sheets.getByName("medium")
oDataRange = oSheet.getCellRangeByName("medium")
rem passed to this again
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem fourth repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("bbMediumSaying")
oSheet = ThisComponent.Sheets.getByName("mediumNsaying")
oDataRange = oSheet.getCellRangeByName("mediumNsaying")
rem again passed to this again
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem fifth repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("bcMediumType")
oSheet = ThisComponent.Sheets.getByName("mediumNtype")
oDataRange = oSheet.getCellRangeByName("mediumNtype")
rem yet again passed to this again
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem Sixth repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("ccOneSmall")
oSheet = ThisComponent.Sheets.getByName("small")
oDataRange = oSheet.getCellRangeByName("small")
rem yet again passed to this
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem seventh repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("ccSmallSaying")
oSheet = ThisComponent.Sheets.getByName("smallNsaying")
oDataRange = oSheet.getCellRangeByName("smallNsaying")
rem yet again passed to this
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
rem final repeat
oSheet = ThisComponent.Sheets.getByName("filters")
oCritRange = oSheet.getCellRangeByName("cdSmallType")
oSheet = ThisComponent.Sheets.getByName("smallNtype")
oDataRange = oSheet.getCellRangeByName("smallNtype")
rem yet again passed to this
oFiltDesc = oCritRange.createFilterDescriptorByObject(oDataRange)
oFiltDesc.UseRegularExpressions = True
oDataRange.filter(oFiltDesc)
End Sub```