在 Office 脚本中引用另一个工作簿

Referencing another Workbook in Office Scripts

我有一个工作簿需要它与另一个工作簿进行交互。我有下面的代码,它将 运行 正常并获取单元格的值。但是我需要有一个函数来引用另一个工作簿。

function main(workbook: ExcelScript.Workbook) {
    
    // Get Worksheet
    let Sheet1 = workbook.getWorksheet('Worksheet 1');
    // Get the value of cell A1.
    let range = SourceData1.getRange("A1");
    // Print the value of A1.
    console.log(range.getValue());
    
}

我试过这样引用...

let SourceData1 = workbook.getWorksheet('https://mydomain.sharepoint.com/personal/Documents/[sourceData.xlsx]in');

但我认为工作簿部分只是引用了打开的内容?如何引用来自不同 sheet 的外部工作簿?

你应该能够使用我写的大部分回复 。只有一些小差异:

您不需要对任何内容进行字符串化或解析。您可以直接将单元格的值作为字符串使用。

您将使用范围的 GetValue 方法在第一个脚本中获取单元格的值。然后,您将 return 该值作为第一个脚本中的字符串,如下所示:

//first script
function main(workbook: ExcelScript.Workbook): string
{
  let sh: ExcelScript.Worksheet = workbook.getActiveWorksheet();
  let rang: ExcelScript.Range = sh.getRange("E1");
  return rang.getValue() as string
}

在第二个脚本中,您不需要调整任何范围。只需设置应分配输入值的范围,并将函数的参数值分配给该范围(在我的 link 中,我将参数称为 tableValues。因此,由于这是一个单元格值,我会考虑将其重命名为像单元格值之类的东西)。因此,如果您有一个 cellValue 参数,您可以像这样更新代码行:

//second script
function main(workbook: ExcelScript.Workbook, cellValue: string)
{
  let sh: ExcelScript.Worksheet = workbook.getActiveWorksheet()
  let rang: ExcelScript.Range = sh.getRange("D1")
  rang.setValue(cellValue)
}