Python程序员的资源

22 投票
8 回答
9717 浏览
提问于 2025-04-11 09:19

我在Python上写了很多代码,对Python的语法和对象结构非常熟悉。

请问有没有什么好的在线指南或资源网站,可以让我了解基础知识,同时提供Python和VBA之间的功能或特性对比?

比如,我在把Python中的简单列表转换成VBA代码时遇到了困难。我在数据结构方面也有问题,比如字典等等。

有没有什么资源或教程可以帮助我将Python的功能转移到VBA,或者让我从一个强大的面向对象编程语言背景适应VBA的语法?

8 个回答

2

这个教程不是专门给Python程序员准备的,但我觉得它是一个很不错的VBA学习资源:

http://www.vbtutor.net/VBA/vba_tutorial.html

这个网站讲解了一个使用列表的实际案例:

http://www.ozgrid.com/VBA/count-of-list.htm

2

这可能不是你想要的内容,但如果你有一些编程基础,这个VBA网站还不错。它不是简单的“这个等于那个”的列表,而是更像是问题和解决方案的集合。

http://www.mvps.org/access/toc.htm

26

VBA和Python差别挺大的,所以你最好先看看你要用的应用程序(比如Excel、Access等)里提供的“Microsoft Visual Basic帮助”。

一般来说,VBA有类似Python模块的东西,叫做“库”。不过,创建这些库没有Python模块那么简单。我提到它们是因为库可以提供一些更高级的类型供你使用。

作为一个入门提示,有两种类型可以替代Python中的listdict

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(或者选择视图→对象浏览器)。

撰写回答