delphi - 未声明的标识符 .WorkSheets OLE Excel

标签 delphi delphi-xe2

我在使用 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/

相关文章:

delphi - 使用扩展的 mapi 函数将图像嵌入到 Outlook

class - 在 Delphi 中找不到类

delphi - Delphi XE中奇怪的SHL操作

delphi - 字符串记录的 TDictionary 哈希被破坏

delphi - 如何用泛型方法继承类?

delphi - 在 Excel 中插入一行

delphi - 如何为整个整数数组赋值?

德尔福XE2 : Reloading a custom VCL style from file?

delphi - 在没有透明度的情况下将 PNG 图形绘制到 Canvas 上?

arrays - 创建一个常量字符串数组