VBA中的类

一. 前言

类(class), 这个话题在各种语言中的入门知识中, 是很多懂哥喜欢装神弄鬼的话题, 假如检索类相关的信息, 很容找到以下相关的内容:

  • 多态
  • 继承
  • 封装
  • 抽象
  • 对象
  • 实例
  • 方法
  • 重载
  • 对象: 对象是类的一个实例, 有状态和行为. 例如, 一条狗是一个对象, 它的状态有: 颜色, 名字, 品种; 行为有: 摇尾巴, 叫, 吃等.
  • : 类是一个模板, 它描述一类对象的行为和状态.
阅读全文 »

VBA数组漫谈

一. 前言

数组(列表), 字典(集合), 类, 这三者不会因为语言的差异而其重要性会发生变化.

数组, 字典, 操作数据的基础容器.

类, 清晰代码结构的基础.

需要注意的是, 在vba中只有数组的概念, 没有列表的概念(当然也可以自定义封装一个类来实现列表的功能).

在看vba的数组前, 先来看看pythonJavaScript中的数组.

>>> from array import array
>>>
>>>
>>> a = array('i', [1,2,3,4])
>>>
>>> print(a[0])
1

# 不允许混合存储数据
>>> a = array('i', ['a',2,3,4])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: an integer is required (got type str)
>>>
阅读全文 »

Markdown文档嵌入base64图片

一. 前言

独立博客最麻烦就是图片存储, 第三方的免费图床, 国内的基本没法用(乱删图片, 服务高度不稳定, 随时关站...), 国外的有几个相对稳定的, 但是访问是个问题. Gitee封禁了外链, GitHub访问又是高度不稳定的....

由于路过图床 - 免费图片上传, 专业图片外链, 免费公共图床 (imgse.com)收紧了免费上传图片, 只能将图片转为base64嵌入markdown文档, 但是由于截图不希望过度压缩, 希望保存一份截图的高清版本, 这导致图片文件非常大, 直接嵌入markdown文档, 虽然这种方式可以摆脱网络的依赖, 但是会导致文档非常臃肿.

直接嵌入base64图片没办法直接使用这种方式实现.

![image](img_url)
# 在typora上, img_url直接使用base64替换没办法直接显示图片
<img src=""></img>

直接使用img标签, 也无法显示图片.

阅读全文 »

Markdown进阶

一. 前言

John Gruber在2004年创造了Markdown语言 在语法上有很大一部分是跟[亚伦- 斯沃茨](https://baike.baidu.com/item/亚伦- 斯沃茨/4027108?fromModule=lemma_inlink)( Aaron Swartz) 共同合作的. 这个语言的目的是希望大家使用" 易于阅读 易于撰写的纯文字格式 并选择性的转换成有效的XHTML( 或是HTML) " . 其中最重要的设计是可读性 也就是说这个语言应该要能直接在字面上的被阅读 而不用被一些格式化指令标记( 像是RTF与HTML) . 因此 它是现行电子邮件标记格式的惯例 虽然它也借鉴了很多早期的标记语言 如: Setext Texile reStructuredText.

阅读全文 »

VBA-字符串处理-语言层级bug

一. 前言

最近碰到一个比较有趣的vba编写的错误, 处理该问题时, 突然想起很早之前的一个vba语言层的bug.

相关内容见本人在这个帖子上的描述, @liucqa你的问题暂时解决了_VBA字符串/字符编码/字符集谜题-Excel VBA程序开发-ExcelHome技术论坛 -.

二. 问题

该问题为语言层级的bug所导致.

该问题在百度上能够检索到的相关页面最早见于可能是在2010版本的office上出现.

问题很简单, 当使用instr, split函数处理字符串时, 部分的字符串上会出现异常错误.

阅读全文 »

地址拆分-Excel公式执行循环操作

一. 前言

问题来源于

=LEFT(P2,MIN(FIND({"省","市","区"}, P2&"省市区")))

被问及一个问题, find()中的大括号是什么意思.

这个, 很简单, 大括号是excel在表格公式实现数组的符号, 具体见Excel有趣函数系列-lookup | Lian (kyouichirou.github.io).

关键不在于此, 而是突然对于excel公式如何处理地址切割问题起了兴趣.

检索了一下必应, 并未发现相对可行的演示案例, 大部分的示例excel公式不是过于简陋, 就是各种函数层层叠叠, 令人望而生畏. 有没有简单易于理解的切割方式呢, 于是动手尝试一下.

阅读全文 »