ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 清空数组的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2005-3-16 01:24 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
由于上一次调用数组存储一批数据,和这次再调用同一数组存储另一批数据,可能会出现数据重复,所以在每次调用该数组时候,我想先把数组清空,不知道这个语句该怎么写????谢谢帮忙!!!!!

TA的精华主题

TA的得分主题

发表于 2005-3-16 01:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Erase 语句示例

该示例使用 Erase 语句重新初始化固定大小的数组中的元素,以及释放动态数组存储空间。

Dim NumArray(10) As Integer ' Integer 数组。

Dim StrVarArray(10) As String '变长的 String 数组。

Dim StrFixArray(10) As String * 10 '定长的 String 数组。

Dim VarArray(10) As Variant 'Variant 数组。

Dim DynamicArray() As Integer '动态数组。

ReDim DynamicArray(10) '分配存储空间。

Erase NumArray '将每个元素设为 0。

Erase StrVarArray '将每个元素设为 '零长度字符串 ("")。

Erase StrFixArray '将每个元素设为 0。

Erase VarArray '将每个元素设为 Empty。

Erase DynamicArray '释放数组所用内存。

[此贴子已经被作者于2005-3-16 1:41:08编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-16 01:43 | 显示全部楼层

假设我要把数组aa()全部清空,就是数组里面什么都没有.不知道该怎么写????谢谢了!!!!!!!!!!!!!!!!!1

Erase VarArray '将每个元素设为 Empty。好像这个不太好

Erase DynamicArray '释放数组所用内存。这个是不是把数组还原到原来刚定义的程度?最好是什么都没有!!!!

但是这两个都不会用,可以给一个以数组aa()为例子的语句看看吗???

[此贴子已经被作者于2005-3-16 1:46:28编辑过]

TA的精华主题

TA的得分主题

发表于 2005-3-16 02:00 | 显示全部楼层
Sub 清空数组演示() Dim i, a(2) As Integer Dim d, b, c As String For i = 0 To 2 d = d & "a(" & i & ")=" & a(i) & " " Next MsgBox "数组未赋值时 " & d For i = 0 To 2 a(i) = i Next For i = 0 To 2 b = b & "a(" & i & ")=" & a(i) & " " Next MsgBox "数组已赋值 " & b & "现在开始清空" Erase a For i = 0 To 2 c = c & "a(" & i & ")=" & a(i) & " " Next MsgBox "已清空,清空后数组的值为 " & c End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-16 02:12 | 显示全部楼层

我晕倒,头都大了,什么未赋值,已赋值的,我只是要清空数组aa()的语句即可....狂晕!!!!

For i = 0 To 2 d = d & "a(" & i & ")=" & a(i) & " " Next 不过我好奇,问一下这句话的作用是什么???看不懂,d也算是数组了吗????

运行这句后,d是不是等于 "da(2)=a(2)"

TA的精华主题

TA的得分主题

发表于 2005-3-16 02:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

其实你的程序用 Erase aa 这句即可清空数组了!

d 是个字符变量;& 是个连接符号,它的用处很大的。

[此贴子已经被作者于2005-3-16 2:16:22编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-16 02:13 | 显示全部楼层

还是不得不再次问一下我原来的问题,由于aa()需要多次调用,所以在每次调用完了之后,我都需要清空数组aa(),以备下次使用,请问,这个清空数组的语句该怎么写呢??????????

是不是Erase aa()就可以了?????????????

[此贴子已经被作者于2005-3-16 2:14:05编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-16 02:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

呵呵,谢谢:)原来真的是Erase aa()就可以了:)

对了Erase aa 和Erase aa()是一样的吗???????

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-16 02:17 | 显示全部楼层

同时清空多个数组可以用

erase aa,bb,cc,dd这样写吗????????

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-3-16 02:18 | 显示全部楼层

那我运行看看,到底d等于什么:)

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

本版积分规则

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

GMT+8, 2024-5-8 01:13 , Processed in 0.049810 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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