Незначительные исправления в вашем коде
Option Explicit
Sub calcGravity()
Dim i As Integer, j As Integer
Dim sum As Long
Dim x As double, y As double
'get sum
For i = 1 To 5
For j = 1 To 5
sum = sum + Cells(i, j).Value
'Debug.Print Cells(i, j).Address
Next j
Next i
For i = 1 To 5
For j = 1 To 5
x = x + (i) * Cells(i, j).Value / sum
y = y + (j) * Cells(i, j).Value / sum
'Debug.Print Cells(i, j).Address
Next j
Next i
Debug.Print ("Center x: " & x & " y: " & y)
End Sub
Тесты по вышеуказанному коду
Sub Test1()
Call Set_All_to_0
Range("A1").Value = 1
Debug.Print "Only A1 = 1"
Call calcGravity
Debug.Print
Call Set_All_to_0
Range("E1").Value = 1
Debug.Print "Only E1 = 1"
Call calcGravity
Debug.Print
Call Set_All_to_0
Range("A5").Value = 1
Debug.Print "Only A5 = 1"
Call calcGravity
Debug.Print
Call Set_All_to_0
Range("E5").Value = 1
Debug.Print "Only A5 = 1"
Call calcGravity
Debug.Print
Call Set_All_to_0
Range("A1:E1").Value = 1
Debug.Print "A1:E1 = 1"
Call calcGravity
Debug.Print
Call Set_All_to_0
Range("A5:E5").Value = 1
Debug.Print "A5:E5 = 1"
Call calcGravity
Debug.Print
Call Set_All_to_0
Range("A1:A5").Value = 1
Debug.Print "A1:A5 = 1"
Call calcGravity
Debug.Print
End Sub
Sub Set_All_to_0()
Dim i As Integer, j As Integer
For i = 1 To 5
For j = 1 To 5
Cells(i, j) = 0
Next j
Next i
End Sub
Немедленное окно
Only A1 = 1
Center x: 1 y: 1
Only E1 = 1
Center x: 1 y: 5
Only A5 = 1
Center x: 5 y: 1
Only A5 = 1
Center x: 5 y: 5
Only A1 = 1
Center x: 1 y: 1
Only E1 = 1
Center x: 1 y: 5
Only A5 = 1
Center x: 5 y: 1
Only A5 = 1
Center x: 5 y: 5
Only A1 = 1
Center x: 1 y: 1
Only E1 = 1
Center x: 1 y: 5
Only A5 = 1
Center x: 5 y: 1
Only A5 = 1
Center x: 5 y: 5
A1:E1 = 1
Center x: 1 y: 3
Only A1 = 1
Center x: 1 y: 1
Only E1 = 1
Center x: 1 y: 5
Only A5 = 1
Center x: 5 y: 1
Only A5 = 1
Center x: 5 y: 5
A1:E1 = 1
Center x: 1 y: 3
A1:E1 = 1
Center x: 5 y: 3
Only A1 = 1
Center x: 1 y: 1
Only E1 = 1
Center x: 1 y: 5
Only A5 = 1
Center x: 5 y: 1
Only A5 = 1
Center x: 5 y: 5
A1:E1 = 1
Center x: 1 y: 3
A5:E5 = 1
Center x: 5 y: 3
A1:A5 = 1
Center x: 3 y: 1