For x = 1 To ws1.Cells(Rows.Count, 1).End(xlUp).Row
If InStr(1, Cells(x, 1), UserValue) > 0 Then
ws1.Cells(x, 2) = ws2.Cells(23, 6).Value
ws1.Cells(x, 3) = ws2.Cells(23, 7).Value
ws1.Cells(x, 4) = ws2.Cells(23, 8).Value
ws1.Cells(x, 6) = ws3.Cells(90, 6).Value
ws1.Cells(x, 7) = ws3.Cells(90, 7).Value
ws1.Cells(x, 8) = ws3.Cells(90, 8).Value
ws1.Cells(x, 10) = ws4.Cells(18, 6).Value
ws1.Cells(x, 11) = ws4.Cells(18, 7).Value
ws1.Cells(x, 12) = ws4.Cells(18, 8).Value
Else:
End If
Next x
Выше я работаю вместо цикла while.
Я не знаю, имеет ли это все, в чем Вы нуждаетесь (и это включает много другого материала), но библиотека в июне (Лицензированный GPL) могла бы быть хорошим местом для запуска. Это поставляется как часть стандартной версии NC VisualWorks, не уверенного в другом Smalltalks. Пакет, которым Вы интересовались бы, называют Jun-Topology-Graph.
Для Писка выезд http://www.squeaksource.com/Graph.html, который утверждает, что был библиотекой графика, как в "Этих классах, добавляет, что категория набора для представления наборов tha tdo не обязательно имеет последовательность, но более структурирована, чем наборы".