在 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)
}
我有一个工作簿需要它与另一个工作簿进行交互。我有下面的代码,它将 运行 正常并获取单元格的值。但是我需要有一个函数来引用另一个工作簿。
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)
}