Excel VBA “автометод заполнения неудавшегося класса диапазона”

Согласно API, с помощью remove_index и add_index является единственным способом достигнуть этого.

8
задан RBarryYoung 7 October 2009 в 02:47
поделиться

2 ответа

Из MSDN :

Пункт назначения должен включать исходный диапазон.

B: U не содержит A6 , поэтому возникает ошибка. Я считаю, что вы, вероятно, хотите, чтобы для out было установлено значение A6: U6 .

Указание только имени столбца означает, что вы хотите заполнить каждую строку в этом столбце, что вряд ли быть желаемым поведением


Обновление

В дополнение к приведенному ниже комментарию OP и обновлению исходного ответа это может помочь:

Dim src As Range, out As Range, wks As Worksheet

Set wks = Me
Set out = wks.Range("B1")
Set src = wks.Range("A6")
src.Copy out

Set out = wks.Range("B1:U1")
Set src = wks.Range("B1")
src.AutoFill Destination:=out, Type:=xlFillCopy

Set out = wks.Range("B:U")
Set src = wks.Range("B1:U1")
src.AutoFill Destination:=out, Type:=xlFillCopy

Автозаполнение ограничено одним направлением (т. е. горизонтальным или вертикальным) в один раз. Чтобы заполнить двумерную область из одной ячейки, вы сначала должны автоматически заполнить линию вдоль одного края этой области, а затем растянуть эту линию по области

Для конкретного случая копирования форматирования и очистки содержимого ( в силу того, что исходная ячейка пуста), это лучше:

Dim src As Range, out As Range, wks As Worksheet

Set wks = Sheet1
Set out = wks.Range("B:U")
Set src = wks.Range("A6")
src.Copy out
21
ответ дан 5 December 2019 в 06:38
поделиться

Если вы хотите выполнить автозаполнение, просто выполните что-то вроде ...

Private Sub Autofill()

'Select the cell which has the value you want to autofill
Range("Q2").Select

'Do an autofill down to the amount of values returned by the update
Selection.AutoFill Destination:=Range("Q2:Q10")

End Sub

Это приведет к автозаполнению до указанного диапазона.

Это поможет?

1
ответ дан 5 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: