| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1636 人关注过本帖
标题:探测EXCEL表数据区域范围的代码如何写?
只看楼主 加入收藏
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2198
专家分:3838
注 册:2007-4-27
结帖率:95.83%
收藏
已结贴  问题点数:30 回复次数:18 
探测EXCEL表数据区域范围的代码如何写?
eole=CREATEOBJECT('Excel.application')  &&创建Excel对象
eole.visible=.F.      &&&不显示EXCEL对象
eole.Workbooks.Open('D:\TEST.XLS')     &&打开文件
之后,VFP代码如何探测EXCEL表数据区域的范围?
探知后选中,接看就可以做后续的处理
搜索更多相关主题的帖子: EXCEL Excel 如何 
2012-01-12 08:39
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:8 
你在Excel中記錄Ctrl+End的宏,就是那個指令。

以下是我在Excel2010中錄到的宏,各種版本自己參考一下:
ActiveCell.SpecialCells(xlLastCell).Select


定位到最右下角的單元格,就有辦法取得全部數據的範圍。

[ 本帖最后由 TonyDeng 于 2012-1-12 12:41 编辑 ]

授人以渔,不授人以鱼。
2012-01-12 12:36
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2198
专家分:3838
注 册:2007-4-27
收藏
得分:0 
首先感谢TonyDeng的帮助。
  kz = 6
  Do While Not (IsEmpty(Sheets("上1").Cells(kz, 1).Value))

    sn = 0
    smax = 0
    smin = 9999
    For i = 2 To 8
      If Sheets("上1").Cells(kz, i).Value > smax Then
        smax = Sheets("上1").Cells(kz, i).Value
      End If
      If Sheets("上1").Cells(kz, i).Value < smin Then
        smin = Sheets("上1").Cells(kz, i).Value
      End If
      sn = sn + Sheets("上1").Cells(kz, i).Value
    Next
    Sheets("上1").Cells(kz, 9).Value = sn - smax - smin
    Sheets("上1").Cells(kz, 10).Value = (sn - smax - smin) / 5   
    kz = kz + 1
  Loop

未染红的几行是用来求7个评委打分去掉最高分和高低分后的总分和平均分的代码。

以上染红的几行是我在EXCEL中的VBA里判断数据的依据,如何转换成VFP中能用的?

只求每天有一丁点儿的进步就可以了
2012-01-12 17:52
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2198
专家分:3838
注 册:2007-4-27
收藏
得分:0 
我用的是EXCEL2003

只求每天有一丁点儿的进步就可以了
2012-01-12 17:52
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
收藏
得分:8 
eole.Worksheets(〃上1〃).Activate  
kz=6
Activate  
kg=.t.
Do While kg
  if Not (IsEmpty(eole.Worksheets(〃上1〃).Cells(kz, 1).Value))
    kz = kz + 1
  else
    kg=.f.
enddo
没试过,不知道行不行

2012-01-12 18:56
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
eole=CREATEOBJECT('Excel.application')
eole.visible=.F.
eole.Workbooks.Open('D:\TEST.XLS')
&& 以上是你打開文件的原代碼,然後用以下代碼
with eole
    .Worksheets("上1").Activate    && 激活到工作表
    kz = 6
    Do While Not (IsEmpty(.Cells(kz, 1).Value))
        && 仍用.Cells(row,col)引用Excel單元格
    EndDo
endwith


授人以渔,不授人以鱼。
2012-01-12 21:49
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:8 
eole.ActiveSheet.UsedRange.Select                  &&选择整个数据区
eole.ActiveSheet.UsedRange.Copy                  &&拷贝数据区

相互学习,互相交流,共同提高。
2012-01-12 22:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
剛開始我也以為是選擇整個表格數據的問題,後來看到3樓,才知道不是,呵呵~

授人以渔,不授人以鱼。
2012-01-12 23:11
sywzs
Rank: 10Rank: 10Rank: 10
来 自:辽宁
等 级:贵宾
威 望:15
帖 子:508
专家分:1725
注 册:2009-5-13
收藏
得分:8 
楼主大概是要知道表中数据有多少行?多少列吧?下面是第一个表中的行、列数。
eole.Workbooks.WorkSheets[1].UsedRange.Rows.Count &&行数
eole.Workbooks.WorkSheets[1].UsedRange.Columns.Count  &&列数
2012-01-13 07:08
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:109
帖 子:2198
专家分:3838
注 册:2007-4-27
收藏
得分:0 
没图,要把真相表述清晰,实际是很难的。
最合初宗的答案是6楼,其他楼的答案也是我喜欢的。

非常感谢各位朋友的帮助。再次感谢!

[ 本帖最后由 wengjl 于 2012-1-13 08:30 编辑 ]

只求每天有一丁点儿的进步就可以了
2012-01-13 08:04
快速回复:探测EXCEL表数据区域范围的代码如何写?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018378 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved