FpSpreadsheet: Fix INDIRECT formula regarding references to other sheets.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@9356 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz 2024-05-30 12:04:34 +00:00
parent 6124d2d047
commit 79c502f0e9
3 changed files with 8 additions and 4 deletions

View File

@ -1623,8 +1623,7 @@ begin
fs := ExprFormatSettings;
try
UpdateExprFormatSettings;
// ExprFormatSettings := FFormatSettings;
// FFormatSettings := ExprFormatSettings;
AResult.Worksheet := FWorksheet;
FExprNode.GetNodeValue(AResult);
finally
ExprFormatSettings := fs;

View File

@ -2335,10 +2335,10 @@ begin
begin
book := TsWorksheet(Args[0].Worksheet).Workbook;
sheet := book.GetWorksheetByIndex(Args[0].ResSheetIndex);
Result.Worksheet := sheet;
end;
addr := sheet.ReadAsText(Args[0].ResRow, Args[0].ResCol);
Result := CellResult(addr);
Result.Worksheet := sheet;
end else
if (Args[0].ResultType = rtString) then
Result := CellResult(Args[0].ResString);

View File

@ -1409,7 +1409,12 @@ begin
if res.ResSheetName = '' then
res.Worksheet := self
else
res.Worksheet := Workbook.GetWorksheetByName(res.ResSheetName);
res.Worksheet := Workbook.GetWorksheetByName(res.ResSheetName);
if res.Worksheet = nil then
begin
WriteErrorValue(lCell, errIllegalRef);
exit;
end;
end else
if res.ResSheetName <> '' then
res.Worksheet := Workbook.GetWorksheetByName(res.ResSheetname);