ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[接龙...]部分程序代码注释,目录更新20051222

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2005-10-27 14:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Long_III 真是活雷锋啊,向Long_III 同志学习

TA的精华主题

TA的得分主题

发表于 2005-10-27 22:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
请问,怎么样把一个单元格的计算式,在另一个单元格里得出结果。如,B5单元格输入:1+2-6*5/30,而要在D5单元格得出这个计算式的结果:1,应该怎么来得到。谢谢大家帮助!![em06]

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-10-28 12:33 | 显示全部楼层

59、简单的动态数组。数组是一个很重要的内容,必须得掌握。之前好久都不知道多维数组的动态定义,在看了taller斑竹给别人的例子之后,才有所明白。希望大家也有所收获。例子 2gqJYj94.rar (18.63 KB, 下载次数: 161)

Private Sub CommandButton1_Click() '简单介绍一下动态数组的例子 Dim arr, Xarr() Dim rng As Range Dim S1, S2, t1%, t2% Dim iCol%, i%

Set rng = Sheet2.Range("a2").CurrentRegion '用一个变量定义为原始数据 iCol = rng.Columns.Count '原始数据的列数 arr = rng '用数组表示原始数据

S1 = [a1].Value: S2 = [b1].Value 'A、B列要查询的值 For i = 3 To iCol '判断要查询的在原始数据里对应的列数,t1和t2 If arr(1, i) = S1 Then t1 = i If arr(1, i) = S2 Then t2 = i If t1 > 0 And t2 > 0 Then Exit For Next

k = 1 ReDim Preserve Xarr(1 To 4, 1 To k) '重新定义数组,对于标题行取值 Xarr(1, 1) = arr(1, 1): Xarr(2, 1) = arr(1, 2): Xarr(3, 1) = arr(1, t1): Xarr(4, 1) = arr(1, t2) '这是一个标题

For i = 2 To UBound(arr) '循环判断 If arr(i, t1) = arr(i, t2) And arr(i, t1) <> "" Then '如果两个数相等的话,就重新定义一个动态二维数组 k = k + 1 '依次增加 ReDim Preserve Xarr(1 To 4, 1 To k) Xarr(1, k) = arr(i, 1) Xarr(2, k) = Replace(arr(i, 2), " ", "") Xarr(4, k) = arr(i, t1) '赋值 End If Next Rows("4:1000").ClearContents '删除4:1000行的内容 [a4].Resize(k, 4) = Application.WorksheetFunction.Transpose(Xarr) '最终一定要转置,赋值给单元格 End Sub

'根据redim的帮助,可以看出有preserve时,只能定义数组的最末维,对于这个二维数组,只能定义第二维为动态的,不能 '这样定义哦,ReDim Preserve Xarr(1 To k, 1 To 4),这样动态的就是第一维了,不允许 '故最终赋值给单元格的时候要转置

TA的精华主题

TA的得分主题

发表于 2005-10-28 12:35 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
龙哥在数组方面得研究是越来越深刻了这个是大家得福气啊

TA的精华主题

TA的得分主题

发表于 2005-10-30 21:44 | 显示全部楼层

感谢论坛

真是好人,我虽然没学好电子表格,可我非常想学,进入此论坛算我幸运,遇上高手和好人了

TA的精华主题

TA的得分主题

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

请问龙老师,我在一篇多条件求和的代码中看到这样一段代码,代码中的RC一定是代表行和列,可后面的RC[-1])*1怎么理解呢,帮助里面可实在找不到,请龙老师指点

谢谢

Dim i%

For i = 3 To [h100].End(xlUp).Row

Cells(i, 9).Formula = _

"=SUMPRODUCT((R3C2:R20C2&R3C3:R20C3&R3C4:R20C4=RC[-1])*1,R3C5:R20C5)"

Cells(i, 9) = Cells(i, 9).Value

Next i

TA的精华主题

TA的得分主题

 楼主| 发表于 2005-11-4 09:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

60、有条件下的随机数,200个数中1~20个可能为6~10,其他为1~5。 evkbLI6A.rar (10.27 KB, 下载次数: 113)

里面处理了一个类似把一个数组,变成一个随机数组的问题,请看代码:

Private Sub CommandButton1_Click() Dim i%, t%, m%, M1%, RM1% Dim arr() Dim c As Range Dim H As New Collection Const iMax% = 200, IV As Double = 0.9 '定义两个常量,便于以后修改

Application.ScreenUpdating = False ReDim arr(1 To iMax)

Randomize '初始化随机值 M1 = iMax * (1 - IV) '所有6~10的最大可能数20 RM1 = Int(Rnd * (M1 + 1)) '产生从0到20的可能

If RM1 <> 0 Then For i = 1 To RM1 m = m + 1 arr(m) = Int(Rnd * 5) + 6 '产生Rm1个6~10的随机数 Next End If

For i = 1 To iMax - RM1 m = m + 1 arr(m) = Int(Rnd * 5) + 1 '产生200减去Rm1个1~5的随机数 Next

On Error Resume Next Do k = Int(Rnd * iMax) + 1 '产生不重复的1~200的数,类似打乱顺序的1~200 H.Add k, CStr(k) Loop Until H.Count = iMax Err.Clear: On Error GoTo 0 '清除错误,以后出错时继续报错

For Each c In Range("a1:j20") '在单元格里循环,给单元格赋值 t = t + 1 c = arr(H(t)) 'h(t)就是打乱顺序的1~200 Next

[m2] = 100 - RM1 / iMax * 100 '计算合格率 Application.ScreenUpdating = True End Sub

TA的精华主题

TA的得分主题

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

61、列出某文件夹下的所有子文件及子文件。用了scripting.systemobject和工作表的单元格插入移动方法,我自己都看的有点晕,有兴趣的朋友可以仔细想想里面代码的运算思路。

关于这个问题,我没有想到其他方法,我想应该有简单方法,请大家指教!

K83fZs3C.rar (57.7 KB, 下载次数: 187)

[接龙...]部分程序代码注释,在一楼增加目录20051102

[接龙...]部分程序代码注释,在一楼增加目录20051102

TA的精华主题

TA的得分主题

发表于 2005-11-8 07:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这么好的贴也只有在EXCELHOME才会有!

TA的精华主题

TA的得分主题

发表于 2005-11-8 11:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
[em02][em02][em02][em02]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 15:50 , Processed in 0.055306 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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