https://github.com/inshua/vba-interpreter

已覆盖几乎 VB 所有的特性,只是库还不够全。

VB 语言自身较为落后,语法也有诸多设计不当。最严重的莫过于函数和数组都通过 ()访问,后面扩充的Item类成员也使用 (),导致语法上歧义丛生。但 VB 语言采取的函数名=结果返回结果的形式非常适合编写业务规则,本项目的动机主要也是为了实现一个友好实用的规则引擎。

VB 语言设计混乱之处极多,如 Select Case 支持数字 '1' 与 1 匹配,而 1 = '1' 则报类型不匹配等等,理念不贯通,缺乏闭包、类定义等特性。但对于一些沿用 VBA 较久的公司和客户,用于编写业务规则仍有较大潜力,适合非职业程序员编写一些公积金个税规则等片段。

今天已完成多年前编写的 VB 计算器,算是心愿达成,如无其它原因不会继续往下推进。如对 VBA 编写业务规则认可和感兴趣需要在自己的项目中使用欢迎体验,遇到问题可与本人联系。

vba interpreter 结束的更多相关文章

  1. VBA续嘘嘘

    什么是VBA?它有什么作用? A.实现Excel中没有实现的功能. B.提高运行速度. C.编写自定义函数. D.实现自动化功能. E.通过插入窗体做小型管理软件. VBA在哪里存放的?怎么运行? A ...

  2. 在VBA中使用Windows API

    VBA是一种强大的编程语言,可用于自定义Microsoft Office解决方案.通过使用VBA处理一个或多个Office应用程序对象模型,可以容易地修改Office应用程序的功能或者能够使两个或多个 ...

  3. VBA提高速度的技巧

    此贴原转自EH论坛,我自己有所修改 [编者按]速度是程序设计永恒的热门话题,虽然速度技巧在各种语言之间可以相互借鉴,但差别有时也会很大,比如VC中由于字符串的存储方式决定了判断空串使用len函数更快, ...

  4. 处理Selection对象和Range对象——Word VBA中重要的两个对象

    处理Selection对象和Range对象——Word VBA中重要的两个对象 Word 开发人员参考Selection 对象代表窗口或窗格中的当前所选内容.所选内容代表文档中选定(或突出显示)的区域 ...

  5. 评教数据整理专用VBA小程序

    这次评教的所有数据存放在两个数据库中,比如说给某教师评论的学生有100个,可是结果有40个的数据在数据库A中,另外60人的数据在数据库B中.那么,如何将两个库中的数据整合,最后得到教师的准确成绩成为了 ...

  6. VBA基础概念

    一:VBA对象 'VBA对象 'VBA中的对象其实就是我们操作的具有方法.属性的excel中支持的对象 'Excel中的几个常用对象表示方法 '1.工作簿 ' Workbooks 代表工作簿集合,所有 ...

  7. 2017-5-29 Excel VBA 小游戏

    ---恢复内容开始--- 转一个Excel VBA的小游戏,最近对excel有了更深入的了解,功能很强大,也刷新了我对待事情的态度. 一.准备界面 我们先来把游戏界面准备好,选中前4行,行高调成50, ...

  8. 设计模式的征途—23.解释器(Interpreter)模式

    虽然目前计算机编程语言有好几百种,但有时人们还是希望用一些简单的语言来实现特定的操作,只需要向计算机输入一个句子或文件,就能按照预定的文法规则来对句子或文件进行解释.例如,我们想要只输入一个加法/减法 ...

  9. Excel VBA 连接各种数据库(二) VBA连接Oracle数据库

    本文主要内容: Oracle环境配置 ODBC驱动设置.第三方驱动下载 VBA连接Oracle连接方法 Oracle10g官方免账号下载地址 系统环境: Windows 7 64bit Excel 2 ...

  10. python之GIL官方文档 global interpreter lock 全局解释器锁

    0.目录 2. 术语 global interpreter lock 全局解释器锁3. C-API 还有更多没有仔细看4. 定期切换线程5. wiki.python6. python.doc FAQ ...

随机推荐

  1. replace 和 replaceAll

    replace 匹配中的第一次:replaceAll 替换所有匹配的内容: let str = 'aj123dshf12aaaaaaaaaaa3uausdjd123suas123fus12' let ...

  2. 5. 介绍CSS层级

    层级的大小使用 z-inde 来定义,层级大的会覆盖层级小的 : 举个例子,我们设计弹窗的时候,会涉及三个层面,我们把遮罩层mask放在第二层,把弹窗内容放在第一层 ,页面内容显示在第三层:

  3. 58. vue常用的api

    1. nextTick  使用场景:通过异步渲染的页面解构不能直接dom操作,要使用 nextTick (延迟回调)等待一下 :nextTick 的作用:感知dom的更新完成,类似于 updated ...

  4. MYSQL存储过程-练习3 repeat循环

    MYSQL存储过程-练习3 repeat循环 1 DELIMITER $$ 2 3 CREATE PROCEDURE `sp_repeat`() 4 BEGIN 5 DECLARE i INT; 6 ...

  5. 通过maven动态配置spring boot配置文件

    一.引入maven插件的jar包 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifact ...

  6. FluxCD 多集群应用的设计与实现

    前言 FluxCD 是 CNCF 的孵化项目,可以让我们以 GitOps 的方式轻松地交付应用.和另一个同类的 CNCF 孵化项目 ArgoCD 不同,FluxCD 是许多 toolkit 的集合,天 ...

  7. Cartographer的扫描匹配

    cartographer 代码思想解读(1)- 相关匹配 cartographer在2016年开源后一直在使用,但是一直未仔细阅读并分析其核心代码结构.目前网上可以找到许多博主对其分析和理解.其car ...

  8. freeswitch的话单处理

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 如果对cdr话单要求不高,可以直接使用fs的原始话单文件,使用脚本做一些简单的统计. 环境 CentOS 7.9 freeswitc ...

  9. CSS动画(炫酷表单)

    1.整体效果 https://mmbiz.qpic.cn/sz_mmbiz_gif/EGZdlrTDJa6yORMSqiaEKgpwibBgfcTQZNV0pI3M8t8HQm5XliaicSO42e ...

  10. PL/SQL查询中文乱码问题

    使用PL/SQL查询数据时,有中文的内容显示乱码,如下所示: 解决方案:配置环境变量 新建系统变量: 变量名:NLS_LANG 变量值:AMERICAN_AMERICA.ZHS16GBK 然后重启PL ...