ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] 佛山小老鼠带您走进VBA数组(菜鸟请进)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-12-24 12:46 | 显示全部楼层
本帖已被收录到知识树中,索引项:数组集合和字典
請教要轉換成UTF8,該如何轉換?否則是亂碼?

TA的精华主题

TA的得分主题

发表于 2018-12-27 11:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-1-14 17:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
佛山小老鼠 发表于 2013-11-13 00:20
动态数组1.动态数组我是这样理解的,它的空间结构大小不断变化,或者说我们开始不能确定其空间大小,因此我们 ...

第一种解法的这个语句不是很理解:
ReDim arr2(1 To y, 1 To UBound(arr1, 2)) '重新定义数组arr2的空间大小
问题一:由于arr2()是动态数组,那么根据动态数组只能改变末维的大小,但是看上面这个语句,第一维是变动的y,第二维是变动的UBound(arr1, 2),为什么允许第一维是变动的呢?
问题二:第一维和第二维都是变动的,经过本人测试,结果却是对的,没有提示错误,为什么呢?

新手求指导

TA的精华主题

TA的得分主题

发表于 2019-1-30 11:43 | 显示全部楼层
初学者的宝典,收藏,学习。

TA的精华主题

TA的得分主题

发表于 2019-1-30 14:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
标记!!!!!

TA的精华主题

TA的得分主题

发表于 2019-2-6 13:07 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-2-24 11:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2019-4-17 11:39 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
佛山小老鼠 发表于 2013-11-13 00:23
找出两列相同项与不相同项及两列共有   Option Explicit
Sub 对比两列()
    Dim LastA, LastB, arrA, ar ...

通俗易懂,非常适合我们小白,谢谢老师。

TA的精华主题

TA的得分主题

发表于 2019-5-8 22:17 | 显示全部楼层
“多工作簿查询”的程序执行出来的结果是错的啊

TA的精华主题

TA的得分主题

发表于 2019-5-8 22:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
“多工作簿查询”的程序执行出来的结果是错的啊,不过我写出来了,这是我写的,继续学习!

Option Explicit
Sub 多工作簿汇总()
    Dim i%, j%, m&, path1$, wbname$, name$, arr, arr2(1 To 6)
    Dim wb As Workbook, wb0 As Workbook, ws As Worksheet
    Set wb = ThisWorkbook
    name = wb.Worksheets(2).Cells(1, 1)
    path1 = ThisWorkbook.path & "\分表\"
    wbname = Dir(path1 & "*.xlsx")
    Do While wbname <> ""
        Set wb0 = Workbooks.Open(path1 & wbname)
        For Each ws In wb0.Worksheets
            arr = ws.Range("a1").CurrentRegion
            For i = 1 To UBound(arr)
                If arr(i, 1) = name Then
                    For j = 1 To UBound(arr, 2)
                        arr2(j) = arr(i, j)
                    Next j
                    wb.Worksheets(2).Cells(Cells.Rows.Count, 2).End(xlUp).Offset(1, 0).Resize(1, UBound(arr2)) = arr2

                End If
            Next i
        Next ws
        wb0.Close False
        wbname = Dir
    Loop
    '可再作一下按月份排序
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 19:38 , Processed in 0.042961 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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