ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何用VBA获取100以内满足条件的不重复的三个数并将其单元格?

如何用VBA获取100以内满足条件的不重复的三个数并将其单元格?

作者:绿色风 分类: 时间:2022-08-17 浏览:124
楼主
biaotiger1
Q:如何用VBA获取100以内满足条件的不重复的三个数并写入单元格?
A:ALT+F11→“插入”→“模块”,在该模块的代码窗口中输入代码如下
  1. Sub 获取不重复的三条边组成三角形的面积与周长比为整数1()
  2. Dim a, b, c, d, r
  3. Dim aa()
  4. Application.ScreenUpdating = False
  5. r = 1
  6. Range("a" & r & ":e" & r) = Array("边长1", "边长2", "边长3", "面积", "周长")
  7. For a = 2 To 98
  8.     For b = a + 1 To 99
  9.         For c = b + 1 To 100
  10.             If a + b > c And a + c > b And b + c > a Then
  11.                 d = Sqr((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / 4
  12.                 If d / (a + b + c) = d \ (a + b + c) Then
  13.                     r = r + 1
  14.                     ReDim Preserve aa(1 To r)
  15.                     aa(r) = a + b + c
  16.                     Range("a" & r & ":e" & r) = Array(a, b, c, d, aa(r))
  17.                 End If
  18.             End If
  19.         Next
  20.     Next
  21. Next
  22. Application.ScreenUpdating = True
  23. End Sub
  1. Sub 获取不重复的三条边组成三角形的面积与周长比为整数2()
  2. Dim a, b, c, d, r
  3. Dim aa()
  4. Application.ScreenUpdating = False
  5. r = 1
  6. Range("a" & r & ":e" & r) = Array("边长1", "边长2", "边长3", "面积", "周长")
  7. For a = 2 To 98
  8.     For b = a + 1 To 99
  9.         For c = b + 1 To 100
  10.             If a + b > c And a + c > b And b + c > a Then
  11.                 d = Sqr((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / 4
  12.                 If d / (a + b + c) = d \ (a + b + c) Then
  13.                     r = r + 1
  14.                     ReDim Preserve aa(1 To 5, 2 To r)
  15.                     aa(1, r) = a: aa(2, r) = b: aa(3, r) = c: aa(4, r) = d: aa(5, r) = a + b + c
  16.                 End If
  17.             End If
  18.         Next
  19.     Next
  20. Next
  21. [A2].Resize(UBound(aa, 2) - 1, 5) = WorksheetFunction.Transpose(aa)
  22. Application.ScreenUpdating = True
  23. End Sub
2楼
wnianzhong
学习VBA的好资料,只是不知道有何用途.

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap