Изменение размера диапазона, чтобы написать диапазон на его месте - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть строка кода, в которой я определяю размер сохраненного диапазона, затем записываю диапазон в другой раздел рабочего листа. По какой-то причине, когда я использую Range("MW6"), это работает, но если я использую Range(Cells(6,361)), это не работает. Ниже находится строка кода

Range(Cells(6,361)).Resize(rng.Rows.Count, rng.Columns.Count).Value = rng.Value

Я не понимаю, в чем разница, потому что и MW6, и 6,361 ссылаются на одну и ту же ячейку? Ошибка 1004.

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

Причина, по которой вы получили ошибку времени выполнения, заключается в том, что Cell() сам по себе является объектом диапазона.

Вы могли бы просто использовать:

Cells(6,361).Resize(rng.Rows.Count, rng.Columns.Count).Value

или (как вы уже выразили работы):

Range("MW6").Resize(rng.Rows.Count, rng.Columns.Count).Value

И это всегда хорошая идея квалифицировать ваши объекты диапазона с вашей рабочей таблицей и даже с вашей рабочей книгой.

Workbooks().Worksheets().Cells()

или, по крайней мере:

Worksheets().Cells()
0 голосов
/ 02 ноября 2018

Разобрался для всех, кто заинтересован. По какой-то причине мне пришлось ставить Range (Клетки (6,361), Клетки (6,361)). Было бы интересно узнать, если кто-нибудь знает, почему это так.

...