1
По предложению Скотта Хольцмана. Я устанавливаю определенные столбцы из одной книги в другую книгу. resize
оказывается очень медленным. Что такое более быстрый метод? Вероятно, мне нужно всего 200 строк максимум от каждого столбца.Быстрая альтернатива `resize`?
With ws
.Columns(Start).Resize(, 2).Value = book.Worksheets(wsName & "-F").Columns("A:B").Value
.Columns(Start + label).Resize(, cols).Value = book.Worksheets(wsName & "-F").Columns(Start + label).Resize(, cols).Value
End With
Можете ли вы объединить диапазоны? 'set rng1 = Range (ws1.Cells (1, col1), ws1.Cells (lr, col1 + 1)) & Range (ws1.Cells (1, x), ws1.Cells (lr, x + 1))'? Может быть, «союз» впереди? – findwindow
Конечно, но старайтесь избегать «Союза», если это возможно, потому что он выполняет много работы за кулисами (проверяя каждую ячейку каждого диапазона, которая должна быть объединена, чтобы увидеть, перекрываются ли какие-либо строки или столбцы, то же самое с 'Intersect()') , «Союз» наиболее удобен, когда диапазоны (столбцы) не смежны, как столбцы 1, 3, 20, 35. Но если они находятся в одной области, используйте более быструю стандартную нотацию, такую как «A1: C200». Я бы использовал 'Union' для чего-то вроде этого: Set rng = Union (Range (« A1: C200 »), Range (« E1: E200 »), Range (« H1: I200 »))' (я бы заменил 200 с переменной, удерживающей последнюю строку в UsedRange) –
Сброс идеи объединения. Он не работал:/Просто установите два диапазона вместо XD – findwindow