Excel Office 脚本 - 将 "blank cells" 替换为文本 "null"
Excel Office Scripts - Replace "blank cells" with the text "null"
我正在尝试用文本“null”替换 B 列(列名 = Status)中的空白单元格。我有两种不同的方法可以让我走到一半,但是我不知道如何完全解决这个问题。任何帮助将不胜感激
这里的 excel table 显示 B 列和该列中的一些空白单元格
这是我创建的两个不同的脚本来解决这个问题
脚本 1=我可以识别空白单元格,但不知道如何设置单元格的值。
function main(workbook: ExcelScript.Workbook) {
let source = workbook.getWorksheet("Source");
let sourceTable = workbook.getTable("Source");
const statusVisibleRange = source.getUsedRange().getColumn(0);
const statusVisibleRangeShifted = statusVisibleRange.getOffsetRange(1,1);
const StatusFilter = "Status";
const StatusFilterValues = '';
let stringValue = "null";
let blankCells =
statusVisibleRangeShifted.getUsedRange().getSpecialCells(ExcelScript.SpecialCellType.blanks);
console.log(blankCells.getAddress());
}
脚本 2=如果 B 列(列名 = 状态)中有空白单元格,则脚本有效,但是如果没有任何空白单元格...它会过滤所有值并将此列中所有内容的状态更新为“空”。
function main(workbook: ExcelScript.Workbook) {
let source = workbook.getWorksheet("Source");
let sourceTable = workbook.getTable("Source");
const statusVisibleRange = source.getUsedRange().getColumn(0);
const statusVisibleRangeShifted = statusVisibleRange.getOffsetRange(1,1);
const StatusFilter = "Status";
const StatusFilterValues = '';
let stringValue = "null";
const statusFilter = sourceTable.getColumnByName(StatusFilter);
statusFilter.getFilter().applyValuesFilter([StatusFilterValues]);
statusVisibleRangeShifted.getUsedRange().setValue(stringValue);
statusFilter.getFilter().clear();
这对我有用...
function main(workbook: ExcelScript.Workbook)
{
let worksheet = workbook.getWorksheet("Source");
let table = worksheet.getTable("Source");
let statusColumn = table.getColumnByName("Status");
let statusColumnRange = statusColumn.getRangeBetweenHeaderAndTotal();
let emptyStatusCells = statusColumnRange.getSpecialCells(ExcelScript.SpecialCellType.blanks);
if (emptyStatusCells != undefined) {
let rangeAreas = emptyStatusCells.getAreas();
rangeAreas.forEach(range => {
let values = range.getValues();
values.forEach(cellValue => {
cellValue[0] = "null";
})
range.setValues(values);
})
}
// Add additional logic here once the blank cells are dealt with.
}
我正在尝试用文本“null”替换 B 列(列名 = Status)中的空白单元格。我有两种不同的方法可以让我走到一半,但是我不知道如何完全解决这个问题。任何帮助将不胜感激
这里的 excel table 显示 B 列和该列中的一些空白单元格
这是我创建的两个不同的脚本来解决这个问题
脚本 1=我可以识别空白单元格,但不知道如何设置单元格的值。
function main(workbook: ExcelScript.Workbook) {
let source = workbook.getWorksheet("Source");
let sourceTable = workbook.getTable("Source");
const statusVisibleRange = source.getUsedRange().getColumn(0);
const statusVisibleRangeShifted = statusVisibleRange.getOffsetRange(1,1);
const StatusFilter = "Status";
const StatusFilterValues = '';
let stringValue = "null";
let blankCells =
statusVisibleRangeShifted.getUsedRange().getSpecialCells(ExcelScript.SpecialCellType.blanks);
console.log(blankCells.getAddress());
}
脚本 2=如果 B 列(列名 = 状态)中有空白单元格,则脚本有效,但是如果没有任何空白单元格...它会过滤所有值并将此列中所有内容的状态更新为“空”。
function main(workbook: ExcelScript.Workbook) {
let source = workbook.getWorksheet("Source");
let sourceTable = workbook.getTable("Source");
const statusVisibleRange = source.getUsedRange().getColumn(0);
const statusVisibleRangeShifted = statusVisibleRange.getOffsetRange(1,1);
const StatusFilter = "Status";
const StatusFilterValues = '';
let stringValue = "null";
const statusFilter = sourceTable.getColumnByName(StatusFilter);
statusFilter.getFilter().applyValuesFilter([StatusFilterValues]);
statusVisibleRangeShifted.getUsedRange().setValue(stringValue);
statusFilter.getFilter().clear();
这对我有用...
function main(workbook: ExcelScript.Workbook)
{
let worksheet = workbook.getWorksheet("Source");
let table = worksheet.getTable("Source");
let statusColumn = table.getColumnByName("Status");
let statusColumnRange = statusColumn.getRangeBetweenHeaderAndTotal();
let emptyStatusCells = statusColumnRange.getSpecialCells(ExcelScript.SpecialCellType.blanks);
if (emptyStatusCells != undefined) {
let rangeAreas = emptyStatusCells.getAreas();
rangeAreas.forEach(range => {
let values = range.getValues();
values.forEach(cellValue => {
cellValue[0] = "null";
})
range.setValues(values);
})
}
// Add additional logic here once the blank cells are dealt with.
}