Почему ошибка «Недостаточно памяти» возникает в этом цикле в Excel? - PullRequest
0 голосов
/ 02 марта 2019

Почему этот фрагмент кода выдает ошибку "Недостаточно памяти" в Excel 2010.

Sub naming()
Dim cell As Range
Dim cells As Range
Set cells = Range("C1:E1")
For Each cell In cells
Worksheets("Sheet1").cells.Name = Worksheets("Sheet1").cells.Value
Next cell
End Sub

1 Ответ

0 голосов
/ 02 марта 2019

Cells уже имеет предопределенное значение в качестве свойства объекта диапазона или листа.Worksheets("Sheet1").cells.Value будет гигантским массивом, содержащим значения всех ячеек на листе, который слишком велик для хранения в памяти.Не используйте cells в качестве имени переменной.Это напрашивается на неприятности.

Как-то так работает:

Sub naming()
    Dim cell As Range
    Dim mycells As Range
    Set mycells = Range("C1:E1")
    For Each cell In mycells
        cell.Name = cell.Value
    Next cell
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...