VB6中给数组赋值的限制

(由于用得不是很多,所以干脆记下来免得下次用到时又忘了.)
MSDN有个错误是"不能给数组赋值",即不能将整个数组指定给另一个数组.
而实际上有时行,有时又不行,刚刚写代码时又遇到了,干脆试了一下,结果是,"被赋值数组需要是动态数组".
对于类型,源数组与目标数组需要一致,即使是自定义类型也可以.
以下说明一下可以赋值的情况:
[codes=vb]

Private Type MyType
    kk(10) As Long
End Type
Dim I() As MyType, J(100) As MyType
I = J       'I是动态数组,成立[/codes]
[codes=vb]

Dim I() As Long, J(100) As Long
I = J       'I是动态数组,成立[/codes]
如果目标数组是固定数组,那么就不能完成赋值,会得到编译器的一个"不能给数组赋值"的编译错误:
[codes=vb]

Dim I(100) As Long, J(100) As Long
I = J       '编译错误:不能给数组赋值[/codes]
没有考虑是否有其它情况.
我只需要找到可行的这个方案即可.
以下是MSDN中的错误提示:
 引用内容
不能给数组赋值
   
数组中的各元素,必须个别指定其值。这个错误的起因与解决方法如下所示: 
        试图将一个值指定给一个数组变量,但没有指定要将这个值指定给哪个元素。 
        要设置数组中的一个元素,必须指定此元素的下标。例如,若 MyArray 为一个整型数组,则表达式 MyArray = 5 是无效的,下列的表达式才是正确的:
        MyArray(UBound(MyArray)) = 5
        试图将整个数组指定给另一个数组。例如,假如 Arr1 是一个数组,Arr2 是另一个数组,则下列两个赋值都是无效的: 
        Arr1 = Arr2    ' 无效的赋值。
        Arr1() = Arr2()    ' 无效的赋值。
        想要将一个数组赋值给另一个数组,必须个别赋值元素。例如:
        For count = LBound(Arr2) to UBound(Arr2)
                Arr1(count) = Arr2(count)
        Next count
        请注意,可以将整个数组放在一个 Variant 中,使一个 variant 变量包含整个数组:
        Dim MyArr As Variant
        MyVar = Arr2()
        您可以使用与正常数组相同的下标,来引用在 variant 中的数组元素,例如:
        MyVar(3) = MyVar(1) + MyVar(5)
详细信息,请先选取有疑问的项目,然后按下 F1 键 。

 原文地址:http://blog.m5home.com/article.asp?id=262

 
  
 
 
 
 
 
VB相关
 
 
VB 
VB 
VB 获取汉字拼音的首字母
VB 汉字字符串转换成拼音
VB判断指定名字的进程是否存在函数
VB 两种方法实现热键
VB 使用SendMessage枚举文件与目录
VB 二进制数组与十六进制字符串相互转换
VB 二进制数据读写实例
VB 进制转换大全(十进制、十六进制、八进制、二进制、二进制流)互转
VB 判断是否文本文件
VB 读取UTF-8编码文件函数
VB 按指定编码格式写入文本文件
VB UTF-8 URL编码函数
VB 实现UTF-8 GB2312互转
VB 设置ListView中指定一行的背景颜色
VB SendMessage向其他程序窗口发送字符串消息实例
VB Listview导出到CSV文件函数
vb卸载所有窗体
VBNull, Empty, Nothing, and vbNullString的区别
利用API函数计算程序运行时间VB
获取快捷方式原文件路径vb路径
利用VB函数Dir()实现递归搜索目录
VB数组的清除和重新定义
RtlAdjustPrivilege来调整进程权限(VB6.0代码)
获取对象的接口信息(方法/属性/事件)(VB6代码)
VB6中给数组赋值的限制
[vb]一些窗口消息的详解
VB直接播放EXE文件中的声音文件
VB中利用CopyMemory使用指针
VB读写注册表的三种方法
[VB]SaveSetting 语句 和 DeleteSetting 语句 
VB APP对象属性一览表 + 灵活使用VBAPP对象 
[vb]SendMessageA函数 
使用VB绘制抛物线动画曲线 
关于vb中的容器 
[vb]利用WScript.Shell对象隐藏cmd命令行运行 
浅析VB For Each.Next语句 
VB中窗体模块、标准模块、类模块的区别 
引用 VB类模块 
VB中什么是类,类模块有什么作用 
VB SendKeys 语句 
VB 全局热键 
VB轻松调用其他程序 
vb读取txt文件到textbox 
如何去优化你的VB程序3 
如何去优化你的VB程序2 
如何去优化你的VB程序1 
[VB]在状态栏中显示帮助信息 
[VB]把屏幕保存为图像 
Mp3Play.ocx控件让音乐之声响起来 

更多精彩>>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值