gpt4 book ai didi

excel - 在为给定范围设置格式并写入一些值后,相同的格式会部分自动应用于其他范围

转载 作者:行者123 更新时间:2023-12-04 20:57:49 24 4
gpt4 key购买 nike

我不确定这是否是一个问题,或者它是否是 Excel 的预期行为。如果这确实是预期的行为,我会很感激解释正在发生的事情,因为我看不到模式。

如果将格式和一些值设置为范围,然后仅将值分配给位于第一个范围下方的另一个范围,则第一个范围的格式将部分(随机?)应用于新范围。

我的测试功能:

   function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
}

function loadSampleData(applyFormat) {
var columnCount = 30;
if (applyFormat) {
columnCount = 5;
}
var data = [];
for (var rows = 0; rows < 4; rows++) {
var row = [];
for (var columns = 0; columns < columnCount; columns++) {
var value = columns;
if (getRandomInt(1, 3) == 2) {
value = "text";
}
row.push(value);
}
data.push(row);
}
return Excel.run(function (ctx) {
var selectedRange = ctx.workbook.getSelectedRange().load(['rowCount', 'columnCount']);
var extendedRange;
return ctx.sync().then(function () {
var totalRows = data.length;
var totalColumns = data[0].length;
var deltaRows = totalRows - selectedRange.rowCount;
var deltaColumns = totalColumns - selectedRange.columnCount;
extendedRange = selectedRange.getResizedRange(deltaRows, deltaColumns);
if (applyFormat) {
extendedRange.format.fill.color = "orange";
extendedRange.format.font.color = "white";
}
else {
extendedRange.clear();
}
extendedRange.values = data;
}).then(ctx.sync)
}).catch(errorHandler);
}

脚步:
  • 在任务 Pane 中创建一个按钮(按钮 A)。此按钮必须调用 loadSampleData 并传递 true,才能将一些数据和格式(填充和字体颜色)写入范围。 (范围 A)
  • 在任务 Pane 中创建另一个按钮(按钮 B)。此按钮必须调用 loadSampleData 并传递 false,以仅将数据(无格式)写入更大的范围(范围 B)。
  • 单击 A1 单元格,然后单击按钮 A。注意出现的范围和格式。
  • 单击 A6,然后单击按钮 B。请注意,写入了更大的范围,并且其中一些单元格的格式与步骤 3 中的范围相同,即使没有为范围设置明确的格式。
  • 在 A6 仍处于选中状态的情况下,多次单击按钮 B。请注意,随着范围值的变化,格式化的单元格也会发生变化。

  • 笔记:
  • 如果范围 B 写在范围 A 之上,则不会发生这种情况。
  • 如果范围 B 写在范围 A 下方 4(或更多)行,则不会发生这种情况。

  • 谢谢!

    最佳答案

    令人着迷的是,即使在 UI 中,我也可以重现该问题,而无需编程。 Excel 正在做某种模式匹配,但我承认我很难破译模式是什么......

    enter image description here

    我将与我们的团队讨论——但就具体指导而言,我认为您最安全的选择是设置值,然后清除格式。如果你想 super 小心,你甚至可以更进一步:

  • 设置数字格式(以确保字符串、数字和日期字符串按您希望的方式解释)
  • 设置值
  • range.clear(Excel.ClearApplyTo.formats);
  • 重新设置数字格式

  • 我承认这似乎是一个值得改进的工作流程。让我看看我们是否可以修复“值”,或者提供一种让您一次性设置值和数字格式的方法,并且采用比现在更严格的方式。

    关于excel - 在为给定范围设置格式并写入一些值后,相同的格式会部分自动应用于其他范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43693548/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com