Count blank rows on sheets
This project includes two scripts:
- Count blank rows on a given sheet: Traverses the used range on a given worksheet and returns a blank row count.
- Count blank rows on all sheets: Traverses the used range on all of the worksheets and returns a blank row count.
Note
For your script, a blank row is any row where there's no data. The row can have formatting.
This sheet returns count of 4 blank rows
This sheet returns count of 0 blank rows (all rows have some data)
Sample code: Count blank rows on a given sheet
function main(workbook: ExcelScript.Workbook): number
{
// Get the worksheet named "Sheet1".
const sheet = workbook.getWorksheet('Sheet1');
// Get the entire data range.
const range = sheet.getUsedRange(true);
// If the used range is empty, end the script.
if (!range) {
console.log(`No data on this sheet.`);
return;
}
// Log the address of the used range.
console.log(`Used range for the worksheet: ${range.getAddress()}`);
// Look through the values in the range for blank rows.
const values = range.getValues();
let emptyRows = 0;
for (let row of values) {
let emptyRow = true;
// Look at every cell in the row for one with a value.
for (let cell of row) {
if (cell.toString().length > 0) {
emptyRow = false
}
}
// If no cell had a value, the row is empty.
if (emptyRow) {
emptyRows++;
}
}
// Log the number of empty rows.
console.log(`Total empty rows: ${emptyRows}`);
// Return the number of empty rows for use in a Power Automate flow.
return emptyRows;
}
Sample code: Count blank rows on all sheets
function main(workbook: ExcelScript.Workbook): number
{
// Loop through every worksheet in the workbook.
const sheets = workbook.getWorksheets();
let emptyRows = 0;
for (let sheet of sheets) {
// Get the entire data range.
const range = sheet.getUsedRange(true);
// If the used range is empty, skip to the next worksheet.
if (!range) {
console.log(`No data on this sheet.`);
continue;
}
// Log the address of the used range.
console.log(`Used range for the worksheet: ${range.getAddress()}`);
// Look through the values in the range for blank rows.
const values = range.getValues();
for (let row of values) {
let emptyRow = true;
// Look at every cell in the row for one with a value.
for (let cell of row) {
if (cell.toString().length > 0) {
emptyRow = false
}
}
// If no cell had a value, the row is empty.
if (emptyRow) {
emptyRows++;
}
}
}
// Log the number of empty rows.
console.log(`Total empty rows: ${emptyRows}`);
// Return the number of empty rows for use in a Power Automate flow.
return emptyRows;
}
Collaborate with us on GitHub
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Office Scripts