Vamos para uma direção diferente e mostremos o que duas células podem ser somadas para encontrar a imagem abaixo.
Ainda é um grande desafio para uma pergunta. Vou continuar jogando com uma resposta VBA mais completa, se possível.
Eudevoquebrarporumtempo,masaquiestáoqueeufizparamostrarosvaloresdistintosqueatenderiamaoscritérios.EunãosoudeformaalgumaumespecialistaemVBA,apenastomeiissocomoumaexperiênciadeaprendizado.Tenhocertezaqueeuquebreialgumasregras.
SubWhatCanSUM()DimlstAsRangeDimiAsIntegerDimjAsIntegerDimkAsIntegerDimilst1AsIntegerDimilst2AsIntegerDimilst3AsIntegerDimilst4AsIntegerDimilst5AsIntegerDimilst6AsIntegerDimilst7AsIntegerDimilst8AsIntegerDimilst9AsIntegerDimilst10AsIntegerDimilst11AsIntegerDimilst12AsIntegerDimilst13AsIntegerDimilst14AsIntegerDimilst15AsIntegerDimilst16AsIntegerDimilst17AsIntegerDimilst18AsIntegerDimilst19AsIntegerDimilst20AsIntegerDimilst21AsIntegerDimilst22AsIntegerDimilst23AsIntegerDimilst24AsIntegerDimilst25AsIntegerDimilst26AsIntegerDimlwrlmtAsIntegerDimuprlmtAsIntegerDimresultAsIntegerSetlst=Sheet1.Range("lstNumbers")
i = 1
j = 1
k = 1
ilst1 = lst.Item(1).Value
ilst2 = lst.Item(2).Value
ilst3 = lst.Item(3).Value
ilst4 = lst.Item(4).Value
ilst5 = lst.Item(5).Value
ilst6 = lst.Item(6).Value
ilst7 = lst.Item(7).Value
ilst8 = lst.Item(8).Value
ilst9 = lst.Item(9).Value
ilst10 = lst.Item(10).Value
ilst11 = lst.Item(11).Value
ilst12 = lst.Item(12).Value
ilst13 = lst.Item(13).Value
ilst14 = lst.Item(14).Value
ilst15 = lst.Item(15).Value
ilst16 = lst.Item(16).Value
ilst17 = lst.Item(17).Value
ilst18 = lst.Item(18).Value
ilst19 = lst.Item(19).Value
ilst20 = lst.Item(20).Value
ilst21 = lst.Item(21).Value
ilst22 = lst.Item(22).Value
ilst23 = lst.Item(23).Value
ilst24 = lst.Item(24).Value
ilst25 = lst.Item(25).Value
ilst26 = lst.Item(26).Value
lwrmt = 1000
uprlmt = 1500
result = 0
'===============================================================================================
'Create worksheet if it doesnt exist.
Dim wrslt As Worksheet
Const strSheetName As String = "Results"
Set wrslt = Nothing
On Error Resume Next
Set wrslt = ActiveWorkbook.Worksheets(strSheetName)
On Error GoTo 0
If wrslt Is Nothing Then
Worksheets.Add.Name = strSheetName
End If
'===============================================================================================
'Little header messagge
Set wrslt = ActiveWorkbook.Worksheets(strSheetName)
wrslt.Cells.Delete
wrslt.Cells(1, 1).Value = "Resulting Additions that 2 distinct cells that sum up to >=" & lwrmt & " and <=" & uprlmt
'===============================================================================================
'The Loop
For j = 1 To lst.Rows.Count
For i = 1 To lst.Rows.Count
ilst2 = lst.Item(i + 1).Value
result = (ilst1 + ilst2)
If ilst1 <> ilst2 And result >= lwrmt And result <= uprlmt Then
wrslt.Cells(i + 1, j).Value = ilst1 & " + " & ilst2
End If
Next i
ilst1 = lst.Item(j + 1).Value
Next j
MsgBox ("Done")
'===============================================================================================
'Formatting
wrslt.Range("A1:M1").Select
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Merge
wrslt.Cells.EntireColumn.AutoFit
wrslt.Cells.SpecialCells(xlCellTypeConstants, 23).Select
End Sub
A macro produz a figura abaixo.