Сортировка по алфавиту.
Спасибо!
Например имеется слова на английком ( на столбике А) и их перевод (на столбике В).Надо их сортировать по алфавиту. Но перевод должен совподать, тоесть если места для A3 изменился, тогда и В3 тоже туда должен пойти.
Спасибо!
Идея - сортировать самому (методов много, пузырек - самый простой) и перемещать не только элементы сортируемого, но и элементы соседнего столбца (естественно аналогично)
ЗЫ Пызырек -
Перибираем элементы (слова) со второго по последний [индекс, пусть, "I" ], если I'ый элемент меньше 1'ого (скажем ААА<ААБ), то меняем их местами (и 1'ый с I'тым массива перевода). Затем тоже самое, но с 3'его элемента и меняем I'ый со вторым...
Это один из самых медленных способов, поищи исходник quicksort сортировки. Увы исходник не напишу - VB не знаю.=)
А может кто нибуть поставить код сюда, очень нужен.
Quicksort на C:
{
int p=array;
array=array[j];
array[j]=p;
}
int Partition(int *array,int m,int p)
{
int v,i,j;
v=array[m];
i=m;
j=p;
do
{
do i++; while(array<v);
do j--; while(array[j]>v);
if(i<j)Interchange(array,i,j);
}while(i<j);
array[m]=array[j];
array[j]=v;
return j;
}
void Quicksort(int *array,int p,int q)
{
int j;
if(p<q)
{
j=Partition(array,p,q+1);
Quicksort(array,p,j-1);
Quicksort(array,j+1,q);
}
}//Где *array - указатель на массив, p - номер первого элемента, а q - последнего.
Но увы я не разбераюсь VBA, поетому не знаю куда это писать.
Спасибо за труд.
Но увы я не разбераюсь VBA, поетому не знаю куда это писать.
Это си++, а на каком языке ты понимаешь?
P.S. Идея сортировать сразу оба столбца является наиболее оптимальным решением Вашего вопроса.
В задаче это не оговорено.
Может в Экселе встроеным сортировщиком обойтись?
А вообще то надо программу писать?
В задаче это не оговорено.
Может в Экселе встроеным сортировщиком обойтись?
Конечно, зачем изобретать колесо?
Такая задача возникает только при
добавлении нового слова в словарь,
так что если хочешь автоматической
сортировки, то в стандартной процедуре
Private Sub Worksheet_Change(ByVal Target As Range) вставить стандартную сортировку строк
листа.