2015-08-24 2 views
0

Я пытаюсь сделать макрос для автозаполнения некоторых ячеек со значением, которое я получаю из ячейки (у меня есть счет, если на этой ячейке) это текущий код, который у меня есть, но я не получил его на работу:Автозаполнение в vba со значением с определенной ячейкой

Sub IDONTKNOWWHATIMDOING() 

    Dim Nim As Integer 
    Dim Nom As Integer 

    Nom = 6 

    Nim = Nom + Cells("C2").Value 

    ActiveSheet.Range(Cells(6, 1), Cells(6, 4)).Select 
    Selection.AUTOFILL Destination:=ActiveSheet.Range(Cells(6, 1), _ 
         Cells(6, 4)).Select, Type:=xlFillDefault 

    ActiveSheet.Range(Cells(Nim, 1), Cells(Nim, 4)).Select 

End Sub 
+0

Можете ли вы объяснить, что вы подразумеваете под «Я не получил его на работу»? Вы получаете ошибки? Если да, то какая ошибка и какая строка вызывает ошибку? Если нет, опишите, как результирующий результат отличается от ожидаемого. –

ответ

0

Одна из причин, вы получаете сообщение об ошибке является Cell("C2").Value. Вы не можете (AFAIK) использовать Cell() вот так, вместо этого просто используйте Range("C2").Value. Cells() использует Cells([column],[row]). Итак, если вы хотите использовать Cells() (что может быть полезно позже в цикле), Range("C2") - это то же самое, что и Range(Cells(3,2),Cells(3,2)).

Кроме того, это хорошая идея, чтобы уменьшить/отрицать использование .Select:

Sub IDONTKNOWWHATIMDOING() 

    Dim Nim As Integer 
    Dim Nom As Integer 

    Nom = 6 

    Nim = Nom + Range("C2").Value 

    ActiveSheet.Range(Cells(6, 1), Cells(6, 4)).AUTOFILL Range(Cells(6, 1),Cells(6, 4)), Type:=xlFillDefault 

    'Why .Select the next range? What do you want to do with it? 
    ActiveSheet.Range(Cells(Nim, 1), Cells(Nim, 4)).Select 

End Sub 

Это все еще дает ошибку, потому что ваш исходный диапазон и ваш диапазон заполнения одинаковы. Требуется A6: D6 и хочет заполнить A6: D6. Если вы меняете вторую ячейку на Cells(7,4), она работает. Просто исправьте диапазон, и вы хорошо пойдете!

Редактировать: Я предполагаю, что вы не хотите брать диапазон и заполнять тот же диапазон. ... вы пытаетесь взять то, что находится в A6, и скопировать его в B6, C6 и D6? Или взять то, что находится в A6: D6, и вставить это как, F6: I6? Кроме того, где вы хотите использовать Nim and Nom в основной части? Они настроены на одинаковые диапазоны, которые вы жестко закодировали с цифрами.