Ich glaube, das ist auch nicht so, wie die anderen es meinten.
Du hast 3 7-Segment Anzeigen, die jeweils in der gleichen Folge an einem Port angeschlossen sind.
Dann kannst du die 3 Stellen doch separat setzen.
Hier hast du die Segmente für die Zahlen von 0-9 angegeben:
1: Portb = &B00110000
2: Portb = &B01101101
3: Portb = &B01111001
4: Portb = &B00110011
5: Portb = &B01011011
6: Portb = &B01011111
7: Portb = &B01110000
8: Portb = &B01111111
9: Portb = &B01111011
0: Portb = &B01111110

Diese schreibst du dir jetzt in ein Array. Etwa so:
Dim seg_array(10) As Byte
seg_array(1)= &B00110000
seg_array(2) = &B01101101
seg_array(3) = &B01111001
seg_array(4) = &B00110011
seg_array(5) = &B01011011
seg_array(6) = &B01011111
seg_array(7) = &B01110000
seg_array(8) = &B01111111
seg_array(9) = &B01111011
seg_array(10) = &B01111110

Dabei wirst du bemerken, dass die 0 tatsächlich im Array Element 10 steht. Das liegt daran, dass der Array Index bei 1 beginnt, die 0 also nicht in seg_array(0) geschrieben werden kann. Daher musst du die 0 später gesondert behandeln.

Wenn du jetzt den Wert 357 auf deiner 7-Segment Anzeige darstellen willst, dann soll die 3 (die Segmente dafür stehen in seg_array(3)) auf den PortD (deine Hunderter Stelle) gesetzt werden. Also
PORTD = Seg_array(3)
PORTC = Seg_array(5) und
PORTB = Seg_array(7)

Wie du später feststellen wirst, gibt es elegantere Wege an die einzelnen Ziffern zu kommen, aber für den Anfang kannst die Variable Test durch 100 teilen, um so die 3 zu bekommen. Entsprechend für die Zehner und die Einer.

Versuche dies mal so zu programmieren und melde dich, wenn du nicht weiterkommst.

Gruß

Rolf