ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 979|回复: 15

[已解决] 数组定义的请教

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-7-9 12:56 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 天地一相 于 2023-7-9 18:34 编辑

感谢帮助!详见代码。arr 对应区域单元格内都是整数,长整型。brr对应区域单元格内都是整数,10以内。请教如何正确定义这两个数组。我目前使用的是Dim arr,brr. 看有人说这样不准确,不写全就默认是变体(不懂啥意思),若是整数,应写全。我遐想若正确定义会不会跑的快呢?特此请教。
  1. arr = Range("O5:O" & n)
  2. For x = 1 To 10000
  3.    Calculate
  4.    brr = Range(Cells(5, 8), Cells(n, 8))
  5.    For i = 1 To UBound(arr)
  6.       arr(i, 1) = arr(i, 1) + brr(i, 1)
  7.    Next i
  8. Next x
复制代码


TA的精华主题

TA的得分主题

发表于 2023-7-9 13:16 | 显示全部楼层
无需考虑那么多,VBA是工具,能用就行

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-7-9 13:22 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-7-9 13:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
dim arr() as long ,brr() as Integer

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-9 13:24 | 显示全部楼层
taller 发表于 2023-7-9 13:16
无需考虑那么多,VBA是工具,能用就行

谢谢,想跑的更快一些。看帖子,说是正确定义数据能更快。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-9 13:25 | 显示全部楼层
zh_xwyg 发表于 2023-7-9 13:22
dim arr() as long ,brr() as Integer

谢谢,不对。你这个我发帖前就测试过的,类型不匹配

TA的精华主题

TA的得分主题

发表于 2023-7-9 13:58 | 显示全部楼层
我和你一样写的,没毛病呀,不行后面就redim一下

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-7-9 14:18 | 显示全部楼层
沈默00 发表于 2023-7-9 13:58
我和你一样写的,没毛病呀,不行后面就redim一下

谢谢,我是不懂,只是照猫画虎那样写的。读贴看到说数组应该如何如何定义,就一下糊涂了,不知道我模仿的是不是最正确的写法,尝试修改,就报错,才发帖询问。我不需要Redim,我数组大小不会随着循环变化的。看学习贴,都说数据正确定义会提高速度的,我一直在想办法不断提高计算速度。

TA的精华主题

TA的得分主题

发表于 2023-7-9 14:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你那个定义的Arr和Brr是数组,不需要考虑整型还是是长整型

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-7-9 14:59 | 显示全部楼层
按你代码的写法,速度和变量类型无关,主要是循环操作单元格对象并且还自动计算影响速度。

绝大部分情况下,变量类型对你的程序的速度影响你可以忽略不计。

就问题来说,虽然你定义的是variant,不过在代码指定过程,会自动适应数据的类型,至于占用内存的那点区别,又不是搞算法,基础的应用而已,多半秒少半秒不影响。

一定要严格变量类型,你就需要循环读入数据到数组。

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 02:42 , Processed in 0.037730 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表