📄 stat.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "Stat"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Private mCount As Integer
Private mMean As Double
Private mStd As Double
Private mMax As Double
Private mMin As Double
Private mCPl As Double
Private mCPu As Double
Private mCPk As Double
Event CPkState(ByRef Accepted As Boolean)
Public Sub Calculate()
Dim Idx As Integer
Dim x As Double, Sum_xx As Double, Sum_x As Double
With CPkDataBank
mMin = 1.797693E+308
mMax = -1.797693E+308
mCount = .DataCount
For Idx = 0 To mCount - 1 Step 1
x = .DataItem(Idx)
If x < mMin Then mMin = x
If x > mMax Then mMax = x
Sum_x = Sum_x + x
Sum_xx = Sum_xx + (x ^ 2)
Next Idx
If mCount > 0 Then
mMean = Sum_x / mCount
If mCount > 1 Then
mStd = Sum_xx - (mCount * (mMean ^ 2))
mStd = Sqr(mStd / (mCount - 1))
mCPl = (Mean - LSL) / (3 * mStd)
mCPu = (USL - Mean) / (3 * mStd)
mCPk = mCPl
If mCPu < mCPl Then mCPk = mCPu
If mCPk >= CPK_LIMIT Then
RaiseEvent CPkState(True)
Else
RaiseEvent CPkState(False)
End If
End If
End If
End With
End Sub
Property Get Count() As Integer
Count = mCount
End Property
Property Get Mean() As Double
Mean = mMean
End Property
Property Get Stdev() As Double
Stdev = mStd
End Property
Property Get Max() As Double
Max = mMax
End Property
Property Get Min() As Double
Min = mMin
End Property
Property Get CPu() As Double
CPu = mCPu
End Property
Property Get CPl() As Double
CPl = mCPl
End Property
Property Get CPk() As Double
CPk = mCPk
End Property
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -