Здравствуйте!
Помогите мне, пожалуйста, разобраться с массивами.
Я учусь писать макросы и хочу понять, как правильно помещать данные в массив. Прочитала несколько статей, и вроде все так же сделала, но макрос не работает.
Что я хотела сделать:
1. Объявить массив с типом данных Variant
2. Указать размеры этого массива
3. Скопировать его и вставить во вновь созданный лист для того, чтобы понять, верно ли я задала его размерность.
4. Сначала попробовать объявить двухмерный массив, а в следующем макросе - динамический, и так же его скопировать-вставить, чтобы понять, копируется то, что я хочу, или я не так задаю его размеры.
Во вложении мой файл.
Вот макрос, посмотрите, пожалуйста, что с ним не так. Выдает ошибку Object required - требуется объект - но в моем понимании объектом выступает arrTable, мой массив, и я указала, на каком листе он находится и в каких ячейках (arrTable = Worksheets("Решение").Range("A1:C10"))
Помогите мне, пожалуйста, разобраться с массивами.
Я учусь писать макросы и хочу понять, как правильно помещать данные в массив. Прочитала несколько статей, и вроде все так же сделала, но макрос не работает.
Что я хотела сделать:
1. Объявить массив с типом данных Variant
2. Указать размеры этого массива
3. Скопировать его и вставить во вновь созданный лист для того, чтобы понять, верно ли я задала его размерность.
4. Сначала попробовать объявить двухмерный массив, а в следующем макросе - динамический, и так же его скопировать-вставить, чтобы понять, копируется то, что я хочу, или я не так задаю его размеры.
Во вложении мой файл.
Вот макрос, посмотрите, пожалуйста, что с ним не так. Выдает ошибку Object required - требуется объект - но в моем понимании объектом выступает arrTable, мой массив, и я указала, на каком листе он находится и в каких ячейках (arrTable = Worksheets("Решение").Range("A1:C10"))
Код |
---|
Option Explicit Sub Zadacha_2() Application.ScreenUpdating = False 'инструкция для отключения обновления экрана во время отработки кода (д/быстродействия) Dim arrTable As Variant 'переменная variant для таблицы-массива arrTable = Worksheets("Решение").Range("A1:C10") 'где находится массив, обозначение его границ arrTable.Copy 'копировать массив Sheets.Add After:=ActiveSheet 'создать новый лист после листа "Решение" ActiveSheet.Paste 'вставить скопированный массив в новый лист ActiveSheet.Name = "1" 'присвоить листу имя "1" Application.ScreenUpdating = True 'д/включения обновления экрана End Sub |