Within the row (tr), the content you want seems to be always in the second tdand it is the first content before the linebreak <br/>.
The stable structure of your HTML seems to be:
<tr>
<td>
</td>
<td> 'we look for the first stuff inside here, before the </br> comes
</td>
</tr>
So, starting from your code:
Set elems = IE.document.getElementsByTagName("tr")
For Each e In elems
If e.innerText Like "Tanks:*" Then 'finding the right <tr>
'get full HTML inside the <tr></tr>
fullHTML = e.innerHTML
'first step: parsing until the second <td> comes out...
lookFor = "<td>"
startPos = 8 'we can ignore the first 4, we know that <td> is not the one we look for
foundThis = Right(Left(fullHTML,startPos),4) 'store current 4 characters
Do While foundThis <> lookFor
startPos = startPos + 1
foundThis = Right(Left(fullHTML,startPos),4)
Loop
'once out, we can take the string starting from your 750 until the end
remainingHTML = Right(Left(fullHTML,startPos+6),Len(fullHTML)-startPos)
'so now we parse until we encounter the "<" of the break row tag
myValue = ""
startPos = 1
newParse = Right(Left(remainingHTML,startPos),1)
Do While newParse <> "<"
myValue = myValue & newParse
startPos = startPos + 1
newParse = Right(Left(remainingHTML,startPos),1)
Loop
MsgBox myValue 'here is your 750, 1,000,000 or whatever else
End If
Next e
Please note that the parsing would be much easier if you could reference a JavaScript library in your VBA project. In that case, you could just create a list of children:
If e.innerText Like "Tanks:*" Then
puppies = e.children
'puppies = ["<td></td>", "<td></td>"]
End If
Like this, you could directly parse the second element of the collection.
NOTE the code is not tested and might need to be revised in debug to make it working properly. This is just an idea of how you can structure your parsing.
//tr/td[3]. if it can be any n-th child, then still xpath://tr/td[contains(text(), 'Destroyed')]/following-sibling::td/