gpt4 book ai didi

excel - 如何使用Delphi正确设置公式的Excel NumberFormat属性?

转载 作者:行者123 更新时间:2023-12-02 03:04:52 28 4
gpt4 key购买 nike

当我的 Delphi 程序中通过 OLE 自动化 Excel 并尝试将单元格的 NumberFormat 属性设置为“常规”并编写公式时,Excel 会引发异常并显示以下通知:

Project X.exe 引发异常类 EVariantInvalidOpError 并显示消息“无效变体操作”。

换句话说,我的问题是:哪种 NumberFormat 是包含连接等文本函数的公式单元格的最佳格式?

这是我的示例代码:

USE System.Win.ComObj;

procedure TForm1.Btn_1Click(Sender: TObject);
var
XL: variant;
Sheet,
WorkBook: variant;
begin
try
XL := GetActiveOleObject('Excel.Application');
except
XL := CreateOleObject('Excel.Application');
end;
XL.Visible := False;
WorkBook:=XL.WorkBooks.Add;
Sheet:=XL.WorkBooks[1].WorkSheets.Add;
Sheet.Name := 'Test-Sheet';
Sheet.Cells[1, 1]:='col1';
Sheet.Cells[1, 1].Font.Bold := True;
Sheet.Cells[1, 1].Font.Size := 10;

Sheet.Cells[1, 2]:='col2';
Sheet.Cells[1, 2].Font.Bold := True;
Sheet.Cells[1, 2].Font.Size := 10;

Sheet.Cells[1, 3]:='Basic Formula';
Sheet.Cells[1, 3].Font.Bold := True;
Sheet.Cells[1, 3].Font.Size := 10;
Sheet.Cells[1, 3].numberformat := 'General';


Sheet.Cells[1, 4]:='Text function ';
Sheet.Cells[1, 4].Font.Bold := True;
Sheet.Cells[1, 4].Font.Size := 10;
Sheet.Cells[1, 4].numberformat := 'General';

Sheet.Cells[2, 1].Value := '1000';
Sheet.Cells[2, 2].Value := '500'; // or := 'abcxyz' for concat
Sheet.Cells[2, 3].Value := '=A2+B2'; //this one is ok
Sheet.Cells[2, 4].Value := '=CONCATENATE(A2;B2)'; //this one raised exception...

XL.WorkBooks[XL.WorkBooks.Count].SaveAs( ExtractFileDir( Application.ExeName ) +'\Test.xls' ,51 );
XL.ActiveWorkbook.Close(0);
XL.Quit;
end;

最佳答案

来自documentation :

To combine text and numbers, use the CONCATENATE function, the ampersand operator (&), or the TEXT function and the ampersand operator.

当您使用CONCATENATE()函数时,参数之间用逗号(,)分隔,而不是分号(;),或者与符号(&)

关于excel - 如何使用Delphi正确设置公式的Excel NumberFormat属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43627651/

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