Python程序员的资源
我在Python上写了很多代码,对Python的语法和对象结构非常熟悉。
请问有没有什么好的在线指南或资源网站,可以让我了解基础知识,同时提供Python和VBA之间的功能或特性对比?
比如,我在把Python中的简单列表转换成VBA代码时遇到了困难。我在数据结构方面也有问题,比如字典等等。
有没有什么资源或教程可以帮助我将Python的功能转移到VBA,或者让我从一个强大的面向对象编程语言背景适应VBA的语法?
8 个回答
这个教程不是专门给Python程序员准备的,但我觉得它是一个很不错的VBA学习资源:
http://www.vbtutor.net/VBA/vba_tutorial.html
这个网站讲解了一个使用列表的实际案例:
这可能不是你想要的内容,但如果你有一些编程基础,这个VBA网站还不错。它不是简单的“这个等于那个”的列表,而是更像是问题和解决方案的集合。
VBA和Python差别挺大的,所以你最好先看看你要用的应用程序(比如Excel、Access等)里提供的“Microsoft Visual Basic帮助”。
一般来说,VBA有类似Python模块的东西,叫做“库”。不过,创建这些库没有Python模块那么简单。我提到它们是因为库可以提供一些更高级的类型供你使用。
作为一个入门提示,有两种类型可以替代Python中的list
和dict
。
list
在VBA中,有一种类型叫Collection
。这个是默认就有的(在VBA
库里)。你只需要这样写:
dim alist as New Collection
从此以后,你就可以使用它的一些方法和属性:
.Add(item)
(相当于Python中的list.append(item)),.Count
(相当于Python中的len(list)),.Item(i)
(相当于Python中的list[i]),.Remove(i)
(相当于Python中的del list[i])。虽然功能比较简单,但它确实可以用。
你还可以使用VBA的数组类型,和Python的数组一样,都是同类型的列表。不过和Python的数组不同的是,你需要用ReDim
来改变数组的大小(也就是说,你不能像在Python中那样随便添加或删除元素)。
dict
如果你想要一个类似字典的对象,你需要在你的VBA项目中添加Scripting库¹。之后,你可以这样写:
Dim adict As New Dictionary
然后就可以使用它的一些属性和方法:
.Add(key, item)
(相当于Python中的dict[key] = item),.Exists(key)
(相当于Python中的dict.has_key[key]),.Items()
(相当于Python中的dict.values()),.Keys()
(相当于Python中的dict.keys()),
还有其他的,你可以在对象浏览器²里找到。
¹ 打开VBA编辑器(按Alt+F11)。然后去工具→引用,勾选列表中的“Microsoft Scripting Runtime”。
² 要查看对象浏览器,在VBA编辑器中按F2(或者选择视图→对象浏览器)。