Private Sub CommandButton1_Click()
Dim p(1 To 2) As Double
Dim s(1 To 2, 1 To 2) As Double
Dim i, j As Integer
For i = 1 To 2
p(i) = Sheet1.Cells(2392, i)
Next i
For i = 1 To 2
For j = 1 To 2
s(i, j) = 0
For k = 2 To 2391
s(i, j) = s(i, j) + (Sheet1.Cells(k, i) - p(i)) * (Sheet1.Cells(k, j) - p(j))
Next k
s(i, j) = s(i, j) / 2389
Sheet2.Cells(i, j) = s(i, j)
If i <> j Then Sheet2.Cells(j, i) = s(i, j)
Next j
Next i
End Sub

Private Sub CommandButton2_Click()
Dim p(1 To 2) As Double
For j = 1 To 2
p(j) = Sheet1.Cells(2392, j)
Next j
For i = 2 To 2391
For j = 1 To 2
Sheet1.Cells(i, j + 15) = Sheet1.Cells(i, j) - p(j)
Next j
Next i
End Sub

Private Sub CommandButton3_Click()
Dim t(16 To 17) As Double

For i = 2 To 2391
 For j = 16 To 17
    t(j) = 0
  Next j
    For j = 16 To 17
      For k = 16 To 17
         t(j) = t(j) + Sheet1.Cells(i, k) * Sheet2.Cells(k - 5, j - 15) ' Sheet2第11行存放为协方差矩阵逆矩阵
      Next k
    Sheet3.Cells(i, j) = t(j)
   Next j
Next i
For i = 2 To 2391
  temp = 0
    For j = 16 To 17
      temp = temp + Sheet1.Cells(i, j) * Sheet3.Cells(i, j)
      Sheet1.Cells(i, 6) = temp '马氏距离计算结果存放在Sheetl第6列

    Next j
Next i
End Sub