| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1504 人关注过本帖
标题:请教:VFP读取EXCEL单元格数值赋值给VFP变量的问题
只看楼主 加入收藏
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
结帖率:94.59%
收藏
已结贴  问题点数:20 回复次数:7 
请教:VFP读取EXCEL单元格数值赋值给VFP变量的问题
简单地说吧:我在做一个高考志愿筛选系统,其中“我想学的专业”和“我想去的城市”两项是需要手工输入的(其他项都是从下拉列表中选择的)。代码其实只是改变其中几个变量、文本框的事情,应该可以出同样的结果。但我现在碰到的问题是:在“我想学的专业”里,读取的数据正确;在“我想去的城市”里,比如B18里的“杭州”,却读不出来,显示的是空。
“我想学的专业”的代码如下,不论有没填写,都能出正确的结果:
zy=myexcel.cells(10,2).value   &&专业
IF LEN(zy)>0  
zy1=CHRTRANC(zy,chr(41377)+chr(32),"") &&替换zy中全角、半角空格。alltrim不能删除全角空格
thisform.text1.Value=zy1
ELSE
zy1="囙艸"
thisform.text1.Value=""
ENDIF
“我想去的城市”里的代码是如下,却没读取到“杭州”:
cs=myexcel.cells(18,2).value
IF LEN(cs)>0  
cs1=CHRTRANC(cs,chr(41377)+chr(32),"") &&替换zy中全角、半角空格。alltrim不能删除全角空格
thisform.text4.Value=cs1
ELSE
cs1="囙艸"
thisform.text4.Value=""
ENDIF
"囙艸"只是找了不大常用的两个字,在城市名里找不到罢了。
截图.rar (128.06 KB)

问题可能出在哪里?请方家指点!!!
搜索更多相关主题的帖子: value 读取 城市 空格 VFP 
2021-03-20 21:48
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
zy=myexcel.cells(10,2).value && 不知代表的是什么意思
cs=myexcel.cells(18,2).value
正常情况下代码应该这样写
zy = oExcel.ActiveSheet.Cells(10,2).VALUE
或者
zy = oExcel.ActiveSheet.Cells(10,2).TEXT

用TEXT的好处在于,不管取到的数据是汉字,或者是阿拉伯数字,都能保证取到的数据类型为字符型,保证了LEN()判断时不会出错。

[此贴子已经被作者于2021-3-20 22:22编辑过]


坚守VFP最后的阵地
2021-03-20 22:13
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
回复 2楼 sdta
谢谢SDTA!斧代码就是规范、漂亮,让人看着赏心悦目,我再修改一下!

信息采集表中专业、城市等都是文本型的,要求考生只能输入内容,不能更改格式。
把.VALUE改成.TEXT 后,目前还没能解决问题,?CS1是个空白,在指定城市的第一格也没显示“杭州”。结果正确的话,应该得到:cs1=杭州,我想去的城市第一格应该显示 杭州。

我想读的专业部分,不论输入什么,都能读取并显示正确信息。基本相同的代码,在指定城市部分却取不到正确结果。郁闷
2021-03-21 13:09
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 

本表中,H10与C18单元格均无数据输入但查看长度去不同:
H10单元格:zy=oExcel.ActiveSheet.cells(10,8).text
      ?LEN(zy)
      结果是.NULL.
C18单元格:cs=oExcel.ActiveSheet.cells(18,3).text
      ?LEN(cs)
            结果是10。
目测两个单元格都是空白的,没有内容输入,但查长度为何不同呢?


问题已经解决。先判断单元格是否有内容再进行后续处理。如果单元格内容为空的话,CHRTRANC(oExcel.ActiveSheet.cells(18,10).text,chr(41377)+chr(32),"")替换空格会出现缺少参数的错误。

[此贴子已经被作者于2021-3-21 16:09编辑过]

2021-03-21 15:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
纸上谈兵是解决不了问题的

坚守VFP最后的阵地
2021-03-22 10:03
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
BOOK1.XLS 中内容
图片附件: 游客没有浏览图片的权限,请 登录注册

读取数据代码
程序代码:
CLEAR 
oExcel = CreateObject("Excel.Application")
oExcel.WorkBooks.Open(SYS(5) + SYS(2003) + "\book1.xls")
? oExcel.ActiveSheet.Cells(1,2).TEXT
? oExcel.ActiveSheet.Cells(2,2).VALUE
oExcel.Quit
RELEASE oExcel

显示结果
图片附件: 游客没有浏览图片的权限,请 登录注册


坚守VFP最后的阵地
2021-03-22 11:20
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:20 
如果单元格内容为空的话,CHRTRANC(oExcel.ActiveSheet.cells(18,10).text,chr(41377)+chr(32),"")替换空格会出现缺少参数的错误。

单元格内容为空,不需要进行任何操作,为何要进行替换操作。

坚守VFP最后的阵地
2021-03-22 11:34
zhousr
Rank: 2
等 级:论坛游民
威 望:1
帖 子:266
专家分:47
注 册:2019-3-8
收藏
得分:0 
以下是引用sdta在2021-3-22 11:34:15的发言:

如果单元格内容为空的话,CHRTRANC(oExcel.ActiveSheet.cells(18,10).text,chr(41377)+chr(32),"")替换空格会出现缺少参数的错误。

单元格内容为空,不需要进行任何操作,为何要进行替换操作。


是的,谢谢你!刚开始没注意到这个问题,结果出现错误,打扰大家了!你是高手,给我解决了很多问题,非常感谢!!
2021-03-25 10:43
快速回复:请教:VFP读取EXCEL单元格数值赋值给VFP变量的问题
数据加载中...
 
   



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

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