Você deseja que a macro no Excel VBA faça isso ou apenas um ponteiro em uma direção?
Esta pode não ser a maneira mais eficiente, mas é um caminho.
Percorra o intervalo de números e, para cada conversão de número, uma sequência de caracteres, por exemplo, sValor = Trim (Str (I))
então para cada dígito em LEN (sValue) você obtém o valor e o quadrado
por exemplo. Para J = 1 Para Len (sValue) Resultado = Resultado + (Val (Meados (sText, J, 1)) ^ 2) Próximo J
Assim que tiver um resultado, execute os critérios solicitados e confirme se é um número inteiro (por exemplo) por exemplo. (Resultado / Divisor) = Round (Resultado / Divisor, 0)
e coloque seus resultados nas células necessárias. Repita para quantas iterações forem necessárias (por exemplo, 10000)
Aqui está um exemplo que acabei de inventar e acho que funciona bem para o seu exemplo (fornece 3711 linhas de respostas), apenas altere os valores Const para os seus requisitos.
Sub SplitNumber()
Const StartRange = 1
Const EndRange = 10000
Const Divisor = 3
Const InputCol = 1
Const ResultCol = 2
Dim StartRow, Result As Integer
Dim sValue As String
StartRow = 1
I = StartRange
CurrentRow = StartRow
While I <= EndRange
sValue = Trim(Str(I))
Result = 0
If Len(sValue) > 1 Then
For J = 1 To Len((sValue))
Result = Result + (Val(Mid(sValue, J, 1)) ^ 2)
Next J
Else
Result = Val(sValue) ^ 2
End If
If (Result / Divisor) = Round(Result / Divisor, 0) Then
Cells(CurrentRow, InputCol) = I
Cells(CurrentRow, ResultCol) = Result
CurrentRow = CurrentRow + 1
End If
I = I + 1
Wend
End Sub