我在使用 delphi 和 excel ole 自动化时遇到问题。使用此代码:
uses
ComObj
var
XlApp: Variant;
begin
L_v.Caption: = 'D:\bd1\support\Vi.xls';
XlApp: = CreateOleObject ('Excel.Application');
XLApp.Visible: = True;
XLApp.WorkBooks.Open (L_vi.Caption);
XLApp.Workbooks [1]. Worksheets. [1] Name: = 'Sheet1';
Sheets: = XLApp.Workbooks [1]. Worksheets ['test'];
但是我收到一个错误 行 ..... 处未声明的标识符“工作表”
我不明白为什么。
最佳答案
(请参阅下面我的编辑,标记为已更新:。)
如果这是您的实际代码
XLApp.Workbooks [1]. Worksheets. [1] Name: = 'Sheet1';
Worksheets.[1]Name
存在语法错误。 (.
位置错误。)应该是
XLApp.Workbooks[1].Worksheets[1].Name := 'Sheet1';
这对我来说在 XE3 中工作得很好:
var
XLApp: OleVariant;
begin
XLApp := CreateOleObject('Excel.Application');
XLApp.Visible := True;
XLApp.Workbooks.Open('C:\Test\Test.xls');
XLApp.Workbooks[1].Worksheets[1].Name := 'New Sheet Name';
end;
更新:在您发表评论后,我想我明白您可能遇到的问题是什么。
我认为 Error Insight
是让您感到困惑的地方(红色下划线和“未定义标识符”弹出窗口,这实际上是错误的)。
我在这里发布的代码是在我发布到这里之前在 XE3 中编译并实际执行的,并且它可以工作。但是,如果我将光标放在 Worksheets
上,我会看到 未声明的标识符
弹出窗口和红色下划线。当然,它在某种程度上是正确的 - Worksheets
未声明。不过,当您使用后期绑定(bind)(在运行时使用 CreateOleObject
)时,情况并非如此。
Error Insight
存在缺陷(自从它被添加到 IDE 以来就一直存在)。我做的第一件事(当我看到错误尚未修复时)就是将其关闭(工具->选项->编辑器选项->代码洞察,取消选中右侧的Error Insight
) 。让真正的编译器来解决问题。
关于delphi - 未声明的标识符 .WorkSheets OLE Excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15712827/