ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

静态数组的问题,各们大佬,求解

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-17 23:12 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
    Dim YiChang As Variant
    Dim ZhiXiang As Variant
    Dim YongLiang As Variant
    ReDim YiChang(1 To UBound(XDCM), 1 To 2)
    ReDim ZhiXiang(1 To UBound(XDCM), 1 To 4)
    ReDim YongLiang(1 To UBound(XDCM), 1 To 4)
    Stop
    On Error Resume Next
    ssw = Application.Match("后中长", BuWei, 0)
    For i = 1 To UBound(XDCM)
        YiChang(i, 1) = XDCM(i, 1)
        YiChang(i, 2) = CCB(ssw, i)
        If YiChang(i, 2) + 4 < 72 And PinMing = "童装" Then
            ZhiXiang(i, 1) = "2024黑金4.0-防尘袋1号"
            ZhiXiang(i, 2) = "定制黑金纸箱"
            ZhiXiang(i, 3) = "黑金防潮袋(中号)"
            ZhiXiang(i, 4) = "热敏纸箱贴(三防)"
        ElseIf ZhiXiang(i, 2) + 4 < 95 Then
            ZhiXiang(i, 1) = "2024黑金4.0-防尘袋2号"
            ZhiXiang(i, 2) = "定制黑金纸箱"
            ZhiXiang(i, 3) = "黑金防潮袋(中号)"
            ZhiXiang(i, 4) = "热敏纸箱贴(三防)"
        Else
            ZhiXiang(i, 1) = "2024黑金4.0-防尘袋3号"
            ZhiXiang(i, 2) = "定制黑金纸箱(中号)"
            ZhiXiang(i, 3) = "黑金防潮袋(大号)"
            ZhiXiang(i, 4) = "热敏纸箱贴(三防)"
        End If
        YongLiang(i, 1) = 1
        If PinMing = "童装" Then
            If ZhiXiang(i, 1) = "2024黑金4.0-防尘袋1号" Then
                YongLiang(i, 2) = 0.0384
                YongLiang(i, 3) = 0.0384
                YongLiang(i, 4) = 0.0384
            ElseIf ZhiXiang(i, 1) = "2024黑金4.0-防尘袋2号" Then
                YongLiang(i, 2) = 0.0769
                YongLiang(i, 3) = 0.0769
                YongLiang(i, 4) = 0.0769
            ElseIf ZhiXiang(i, 1) = "2024黑金4.0-防尘袋3号" Then
                YongLiang(i, 2) = 0.1
                YongLiang(i, 3) = 0.1
                YongLiang(i, 4) = 0.1
            End If
        Else
            If ZhiXiang(i, 1) = "2024黑金4.0-防尘袋1号" Then

            ElseIf ZhiXiang(i, 1) = "2024黑金4.0-防尘袋2号" Then
                YongLiang(i, 2) = 0.1111
                YongLiang(i, 3) = 0.1111
                YongLiang(i, 4) = 0.1111
            ElseIf ZhiXiang(i, 1) = "2024黑金4.0-防尘袋3号" Then
                YongLiang(i, 2) = 0.125
                YongLiang(i, 3) = 0.125
                YongLiang(i, 4) = 0.125
            End If
        End If
    Next

    sh11.Range("a40").Resize(2, UBound(YiChang)) = YiChang()
    sh11.Range("a50").Resize(UBound(ZhiXiang), 4) = ZhiXiang()
    sh11.Range("a60").Resize(UBound(YongLiang), 4) = YongLiang()



定义静态数组,正常写入数据,但是我想把数组里的值写入单元格的时候,单元格显示为空白,不报错。指针移动到数组里比如: yichang()   编辑器显示“<下标越界>”   这是为什么呢?  我的程序里面另一个数组同样的方向却能写入单元格,哪里有问题呢?


TA的精华主题

TA的得分主题

发表于 2024-5-18 06:30 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
没有附件,代码也没全部贴出来,靠你自己了。建议按F8逐步运行,查看变量值是不是符合要求,自己改正吧

TA的精华主题

TA的得分主题

发表于 2024-5-18 07:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-5-18 11:18 来自手机 | 显示全部楼层
    sh11.Range("a40").Resize(2, UBound(YiChang)) = YiChang()
把resize 的两个参数对调一下试试

TA的精华主题

TA的得分主题

发表于 2024-5-18 11:20 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-18 23:30 | 显示全部楼层
excel玉米 发表于 2024-5-18 06:30
没有附件,代码也没全部贴出来,靠你自己了。建议按F8逐步运行,查看变量值是不是符合要求,自己改正吧

不好意思,代码太长,又是跨文件,就没有上传。已经找到原因了,前面定义数组的时候,不能定义成变体型,定义成动态就好了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-18 23:33 | 显示全部楼层
不好意思,代码太长,又是跨工作薄的就没有上传。原因已经找到了,定义数组的时候不要写变体型,写动态数组。Dim YiChang As Variant改成Dim(yichang),这样就行了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-18 23:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
excel玉米 发表于 2024-5-18 06:30
没有附件,代码也没全部贴出来,靠你自己了。建议按F8逐步运行,查看变量值是不是符合要求,自己改正吧

谢了,已经找到原因了

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-18 23:34 | 显示全部楼层
半百 发表于 2024-5-18 11:18
sh11.Range("a40").Resize(2, UBound(YiChang)) = YiChang()
把resize 的两个参数对调一下试试

,是定义数组的问题
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 13:33 , Processed in 0.038933 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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