ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8424|回复: 11

[求助] 如何将文本值转换为逻辑值被if语句识别(在线等~)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-2-7 21:18 | 显示全部楼层 |阅读模式
本帖最后由 佚_名 于 2012-2-7 21:55 编辑

我正在编一个程序,主要是条件筛选与汇总统计。因为数据繁多,而且不同的人有不同的判断条件,因此无法事先将条件编入VBA中。为了方便不会编程的人使用,想将判断条件输入文本框,然后点击确定按钮,代码识别文本框中的判断条件,并执行后续操作。
但运行后显示“类型不匹配”,因此想请教各位,如何实现这个功能。
在论坛上搜索的时候发现如下代码:
Dim s
s = Application.Evaluate("1 + 1 >= 2")
If s Then '如果结果为真,则执行
  MsgBox "条件成立"
End If
可以将文本转换为逻辑值

但我写的代码中需要引用表格数据,如:
Dim ws As WorksheetSet ws = Worksheets("Sheet1")文本框中内容:ws.cells(i,6)>ws.cells(i,7)              行用i表示是因为有循环语句此时,显示错误:类型不匹配恳求各位高手支招! 新建 Microsoft Office Excel 工作表.zip (20.55 KB, 下载次数: 18)

TA的精华主题

TA的得分主题

发表于 2012-2-7 21:29 | 显示全部楼层
val(ws.cells(i,6).value)>val(ws.cells(i,7).value)

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-7 21:48 | 显示全部楼层
wenfulin 发表于 2012-2-7 21:29
val(ws.cells(i,6).value)>val(ws.cells(i,7).value)

不好意思,没太看明白您的意思。
我将这句代码复制至文本框,还是显示的类型不匹配。
您能说的再详细点吗?或者将您测试成功的excel表格发上来,我看看是怎么修改的。谢谢了!

TA的精华主题

TA的得分主题

发表于 2012-2-7 22:33 | 显示全部楼层
不能这么搞吧,你不能指望文本框的输入始终是正确的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-7 22:49 | 显示全部楼层
liucqa 发表于 2012-2-7 22:33
不能这么搞吧,你不能指望文本框的输入始终是正确的。

这个可以再使用的时候做一个说明,标明使用那组数据用什么代码。
您有什么好的建议吗,关于实现这个目的,方便不会VBA的人输入判断条件?

TA的精华主题

TA的得分主题

发表于 2012-2-7 22:56 | 显示全部楼层
要确保输入正确的唯一方法是不让用户自己输入。

还是弄下拉选择吧

TA的精华主题

TA的得分主题

发表于 2012-2-7 23:02 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
佚_名 发表于 2012-2-7 22:49
这个可以再使用的时候做一个说明,标明使用那组数据用什么代码。
您有什么好的建议吗,关于实现这个目的 ...

{:soso_e114:}什么逻辑?让不懂VBA写VBA语句!

TA的精华主题

TA的得分主题

发表于 2012-2-7 23:40 | 显示全部楼层
通过操作VBProject实现了要求,不过教程可以写好哦。

注意需要 2012-02-07_233959.jpg

新建 Microsoft Office Excel 工作表.rar

20.95 KB, 下载次数: 28

TA的精华主题

TA的得分主题

发表于 2012-2-7 23:16 | 显示全部楼层
本帖最后由 Moneky 于 2012-2-7 23:30 编辑

可以借鉴Access中的表达式生成器来生成吧,不过要做一个表达式生成器还是比较高科技的。
楼主的实际情况不应该有无数种可能吧,其实可以把常见的写法进行分类,如楼上朋友所说,用下拉列表的形式展现。如你附件中所说”为了方便不会编程的人使用“,但是你的附件中的表达式对于不会编程的人来说就是天书,其实就算是会编程的人也会一头雾水的,为了写个表达式还要去研究半天代码。所以可以说附件中的形式没有什么实用性。

TA的精华主题

TA的得分主题

发表于 2012-2-7 23:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Moneky 发表于 2012-2-7 23:16
可以借鉴Access中的表达式生成器来生成吧,不过要做一个表达式生成器还是比较高科技的。
楼主的实际情况不 ...

VBA写VBA也可以。

点评

已经实现了,10楼。但愿不会被白痴杀毒软件报警  发表于 2012-2-7 23:42
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-26 23:39 , Processed in 0.044015 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表