Часто при работе с массивами приходится копировать данные одного массива в другой. При этом, если объем данных достаточно большой, простой "перебор" элементов массива представляется малоэффективным инструментом. Для увеличения быстродействия программы в этом случае рекомендуется использование функции CopyMemory (например, здесь: http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/WindowsAPI/CopyMemory/171.mspx). Однако из представленного в Листинге4 примера неясно все же, каким образом, например, решить вот такую задачу. Имеется двумерный массив A, состоящий из 4 строк и 4 столбцов. Необходимо скопировать его содержимое в массив B, состоящий из 5 строк и 5 столбцов. Оставшиеся "вакантными" пятые строка и столбец в массиве B будут затем инициированы далее программно.
Возможно ли реализовать это с помощью CopyMemory и как это сделать? Может быть, кто-нибудь сможет порекомендовать статьи на эту тему?
А каким образом можно определять размер копируемых данных?.. Насколько я понимаю, можно каким-то образом использовать для этого функцию Len() (во всяком случае, в VB), однако в VBA у меня возникает ошибка ...
Да. Я именно об этом в:"CopyMemory" в поиск. Однако, к Эксель ИМХО, отношение...Но раз уж(сам использовал), пошла речь... Мое мнение - можешь - делай - поможем. Вместо тебя делать - не хочу. Сделаю - достанешь меня(опыт есть). Дальнейшее на рассмотрение модеров. Дайте чуть повисеть и удаляйте этот пост. Прошу. Сергей.
{quote}{login=Антон}{date=31.10.2010 09:50}{thema=}{post}А каким образом можно определять размер копируемых данных?.. Насколько я понимаю, можно каким-то образом использовать для этого функцию Len() (во всяком случае, в VB), однако в VBA у меня возникает ошибка ...{/post}{/quote}
размерность массива умножить на размер элемента - см Data Type Summary (f1)