找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 2882|回复: 5

excel vba 做的塞规计算表格

[复制链接]
发表于 2014-10-3 21:44:47 | 显示全部楼层 |阅读模式
  为了给公司CMM兄弟们计算方便,想下载个塞规计算表格,到处下载资料也没有发现共享代码的。都是加密的。
于是下载个类似的又做了下,很多不完善的地方。
此算法计算T,Z值时候没有用到差值,利用了靠近近似。
希望有做过类似的大侠们给点意见。
下一步想做个mathcad 驱动proe生成模型的,希望做过类似的大侠给点资料啥的供参考,谢谢!


塞规计算VBA.rar (15.2 KB, 下载次数: 2)

Sub p()
Dim j As Integer
j = 0
End Sub

Function dia2()
Dim d As Single
Dim i As Single
d = Sheet2.[c2].Value
Select Case True
Case d >= 0 And d < 3
i = 6
Case d >= 3 And d < 6
i = 7
Case d >= 6 And d < 10
i = 8
Case d >= 10 And d < 18
i = 9
Case d >= 18 And d < 30
i = 10
Case d >= 30 And d < 50
i = 11
Case d >= 50 And d < 80
i = 12
Case Else
MsgBox "直径超80,不计算"
End Select

j = i
''''''''''''''''''''''''''''''''''''''''''
Dim it(1 To 7)
Dim itt(1 To 7) '减去公差值的数组
Dim k As Integer
Dim kk As Integer '下标
Dim m As Integer
Dim c As Single
Dim t As Single
Dim z As Single
m = 2
For k = 1 To 7
it(k) = Sheet1.Cells(j, k + m).Value
itt(k) = Abs(it(k) - 1000 * Sheet2.[g2].Value)
m = m + 2
Next k

c = Application.Min(itt)
kk = Application.Match(c, itt, 0)
t = Sheet1.Cells(i, 3 * kk + 1)
z = Sheet1.Cells(i, 3 * kk + 2)
''''''''''''''''''''''''''''''''''''''''''''''''''''''
Sheet2.Cells(4, 3) = Round(t, 3)
Sheet2.Cells(5, 3) = Round(z, 3)
End Function


Private Sub CommandButton1_Click()
dia2
End Sub
Private Sub CommandButton2_Click()
End
End Sub

Private Sub UserForm_Click()
End Sub

回复

使用道具 举报

发表于 2014-10-6 11:50:10 | 显示全部楼层
顶一下楼主分享,很想学vb编程啊,老是学不进去
发表于 2021-1-17 13:45:46 | 显示全部楼层
好好的学习吧,段位太idle
发表于 2021-1-31 10:16:42 | 显示全部楼层
很好的东西,谢谢
发表于 2021-3-19 07:25:53 | 显示全部楼层
好的东西,谢谢
发表于 2021-3-19 11:18:48 | 显示全部楼层
学习赚积分
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-7-1 06:56 , Processed in 0.092678 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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