请教::如何判断Excel的worksheet是否可见???(30分)

  • 主题发起人 主题发起人 wader
  • 开始时间 开始时间
W

wader

Unregistered / Unconfirmed
GUEST, unregistred user!
Excel文件中有一些sheet是隐含不可见的,我需要把可见的sheet都找出来。
for j := 1 to ExcelWorkBook1.Worksheets.count do
//Error:下面的visible属性到底怎么操作??请指点一下。表示“可见"的TOleEnum值是什么?
if (ExcelWorkBook1.Worksheets.Item[j] as _WorkSheet).Visible[?] = True
then begin
//...
end;
 
是SHEET还是CELL?
 
检测sheet表单是否可见,不是cell
 
var v:Variant;i:integer;
begin
v:= CreateOleObject('Excel.Application');
v.Visible:=true;
v.Workbooks.Add;//新建EXCEL文件
v.Workbooks[1].WorkSheets[1].Name:= '电脑报';//第一页标题
v.Workbooks[1].WorkSheets[2].Name:= '编程乐园';
v.Workbooks[1].WorkSheets[3].Name:= '都来看呀';
v.Workbooks[1].WorkSheets[3].visible:=false;
showmessage(inttostr(v.WorkBooks[1].worksheets.Count));
for i:=1 to v.WorkBooks[1].worksheets.Count do
if v.Workbooks[1].WorkSheets.visible then showmessage(v.Workbooks[1].WorkSheets.Name);
end;
 
我原来写程序的时候也是使用动态创建的方法操作Excel,
在判断sheet是否可见用的就是你说的方法。但是后来发现
这种方法在实现其它功能有一个无法克服的缺陷,才不得已
转回使用Delphi中的ExcelApplication、ExcelWorkBook、
ExcelWorkSheet控件改写。现在是想知道使用控件时如何
判断Sheet是否可见。
我的ExcelApplcation打开的是多个Excel文件,ExcelWorkBook
跟某一个文件(OpenDialog.Name获得)相关,想知道这个Excel文件
中各个sheet是否可见。
 
var qZW: Variant;
j:=0;
for i:=1 to excelapplication1.Worksheets.Count do
begin
qzw:=excelapplication1.Sheets;
if qzw.visible then j:=j+1;
end;
showmessage(inttostr(j));
 
谢谢你的方法,不过,请问有没有办法知道这个sheet是否我
打开的Excel文件的sheet???
[注意前文所提]
我的ExcelApplcation打开的是多个Excel文件,ExcelWorkBook
~~~~~~~~~~~~~
跟某一个文件(OpenDialog.Name获得)相关,想知道这个Excel文件
~~~~~~~~~ ~~~~~~~~~~~~
中各个sheet是否可见。
 
假设ExcelWorkBook表示的是你打开的excel文件
for i:=1 to ExcelWorkBook.worksheets.count do
begin
if (ExcelWorkBook.worksheets as _worksheet).Visible then
n:=n+1;
end;
 
to dcba:
试过了,Visible属性不能这样使用。
 
说是什么错误?
 
(ExcelWorkBook.worksheets.Item[j] as _worksheet).Visible,对Visible属性
提示Visible:[Icid:Integer]:TOleEnum;现在不知道这个东西怎么使用?
 

Similar threads

后退
顶部