Excel VBA的变长array语法麻烦的要命啊

三级用户 Иван 2023-4-20 1239

几年前用VBA些过简单的Excel。结果不知道谁把我会写宏的事捅出去了,这几天还有其他单位的人找我帮做自动化表格。虽然我是二把刀,VBA的语法都忘差不多了,而且我也知道VBA是很老的语言。但是……


VBA的阵列(array)语法真的麻烦的要命。比如生成一个不定行数的n行*2列的数据结构,Python直接循环时用 list.append((item1, item2)) 插数据搞定。


然后同样不断插数据,VBA要:

1. 先做一个2行*n列的阵列。没看错,是2行*n列。VBA array只能调整最后一个维度。

2. 专门定义一个变量记录列数,比如count

3. 然后循环体中不停地 count = count +1,然后 Redim Preserve arr(1 To 2, 1 To count) 调阵列大小

4. 再 arr(1, count) = xyz: arr(2, count) = abc 把最新数据写进去

5. 最后 WorksheetFunction.Transpose(arr) 把2行*n列转置成 n行*2列(而且如果列数比较多,这个函数就会GG;还要另写循环来转置)


这搞到我现在对VBA都有心理阴影。


上一篇:刚看完灌篮高手,可惜就是最后彩蛋不行。
下一篇:我倒是真没想到。。。
最新回复 (7)
  • 受限用户 songlecom 2023-4-20
    0 2
  • 三级用户 Иван 2023-4-20
    0 3
    songlecom chatgpt几分钟的事情。这几天我一直都在玩怎么用chatgpt写vba,因为提示词prompt不准确,一直在调整。
    感觉电脑马上可以取代人了 (doge
  • 受限用户 songlecom 2023-4-20
    1 4
  • 四级用户 yanyaneboy 2023-4-21
    0 5
    用发展的眼光看问题,再过5年,再过10年会是什么样。
  • 四级用户 龙神 2023-4-21
    0 6
    这种事用GPT帮你弄就挺合适。
  • 四级用户 darksidedxp 2023-4-21
    0 7
    我是vba入的门。vba用了多年,写一些小工具,自定义函数还是挺方便的。不过,里面一些封装的功能确实和现在的高级语言无法比拟。想着以后某个版本能支持vb.net就好了。
  • 四级用户 sonicg 2023-4-21
    0 8
    可以试试VSTO,用C#开发,虽然依然不是很友好,但是好歹比VBA强不少。。。
    • 老男人游戏网配套论坛
      9
        立即登录 立即注册
发新帖
本论坛禁止发布SWITCH和PS4相关资源,若有其他侵权内容,请致邮3360342659#qq.com(#替换成@)删除。