学习反馈:
*************************************************************
* 用VFP判断E表中数据区域的范围 *
* 探测EXCEL表数据区域范围的代码如何写? *
* eole=CREATEOBJECT('Excel.application') &&创建Excel对象 *
* eole.visible=.F. &&&不显示EXCEL对象 *
* eole.Workbooks.Open('D:\TEST.XLS') &&打开文件 *
* 之后,VFP代码如何探测EXCEL表数据区域的范围? *
* 探知后选中,接着就可以做后续的处理 *
*************************************************************
eole=CREATEOBJECT('Excel.application')
eole.visible=.T. &&&&为了观察,使其显示
eole.Workbooks.Open('学校名单.XLS')
****&& 以上是你打開文件的原代碼,然後用以下代碼
*!* With eole
*!* .Worksheets("上1").Activate && 激活到工作表
*!* kz = 6
*!* Do While Not (IsEmpty(.Cells(kz, 1).Value))
*!* && 仍用.Cells(row,col)引用Excel單元格
*!* EndDo
*!* Endwith
***-----论坛上TonyDeng的回答是以上注释的代码,以下为调试成功的代码
**********于2012年1月13日星期五完成*************
*----------------------------------------------------------
kg=.t.
eole.Worksheets(1).Activate && 激活到工作表
kz=3
Do While kg
eole.worksheets(1).cells(kz,2).select
dyg=eole.worksheets(1).cells(kz,2).value
* ? dyg &&&& ************观察变化用************
DO case
CASE VARTYPE(dyg)="C" &&&&VARTYPE(表对象.CELLS(行,列).VALUE)
IF !EMPTY(dyg) and dyg<>".UNLL." &&& EXCEL中的空单元格在常规格式下,VFP判断其值为“.UNLL.”
kz=kz+1
ELSE
kg=.f.
ENDIF
CASE VARTYPE(dyg)$"N"
IF !EMPTY(dyg)
kz=kz+1
ELSE
kg=.f.
ENDIF
* 还要加其他类型的内容
OTHERWISE
kg=.f.
ENDCASE
* ? kz &&&&& ******观察结果用******
ENDDO
*--以上完成了行的检测。 还要加上有数据列的检测就可以选定有数据的范围了
eole.Workbooks.close &&& 关闭工作簿
eole.quit &&& 退出Excel
RELEASE eole &&& 释放对象变量以彻底结束EXCEL进程
*---------------------------------------------------------
*经历了N次的失败后才成功,共花时间3个小时。
*************************************************************
* 用VFP判断E表中数据区域的范围 *
* 探测EXCEL表数据区域范围的代码如何写? *
* eole=CREATEOBJECT('Excel.application') &&创建Excel对象 *
* eole.visible=.F. &&&不显示EXCEL对象 *
* eole.Workbooks.Open('D:\TEST.XLS') &&打开文件 *
* 之后,VFP代码如何探测EXCEL表数据区域的范围? *
* 探知后选中,接着就可以做后续的处理 *
*************************************************************
eole=CREATEOBJECT('Excel.application')
eole.visible=.T. &&&&为了观察,使其显示
eole.Workbooks.Open('学校名单.XLS')
****&& 以上是你打開文件的原代碼,然後用以下代碼
*!* With eole
*!* .Worksheets("上1").Activate && 激活到工作表
*!* kz = 6
*!* Do While Not (IsEmpty(.Cells(kz, 1).Value))
*!* && 仍用.Cells(row,col)引用Excel單元格
*!* EndDo
*!* Endwith
***-----论坛上TonyDeng的回答是以上注释的代码,以下为调试成功的代码
**********于2012年1月13日星期五完成*************
*----------------------------------------------------------
kg=.t.
eole.Worksheets(1).Activate && 激活到工作表
kz=3
Do While kg
eole.worksheets(1).cells(kz,2).select
dyg=eole.worksheets(1).cells(kz,2).value
* ? dyg &&&& ************观察变化用************
DO case
CASE VARTYPE(dyg)="C" &&&&VARTYPE(表对象.CELLS(行,列).VALUE)
IF !EMPTY(dyg) and dyg<>".UNLL." &&& EXCEL中的空单元格在常规格式下,VFP判断其值为“.UNLL.”
kz=kz+1
ELSE
kg=.f.
ENDIF
CASE VARTYPE(dyg)$"N"
IF !EMPTY(dyg)
kz=kz+1
ELSE
kg=.f.
ENDIF
* 还要加其他类型的内容
OTHERWISE
kg=.f.
ENDCASE
* ? kz &&&&& ******观察结果用******
ENDDO
*--以上完成了行的检测。 还要加上有数据列的检测就可以选定有数据的范围了
eole.Workbooks.close &&& 关闭工作簿
eole.quit &&& 退出Excel
RELEASE eole &&& 释放对象变量以彻底结束EXCEL进程
*---------------------------------------------------------
*经历了N次的失败后才成功,共花时间3个小时。
只求每天有一丁点儿的进步就可以了