Одна из причин, вы получаете сообщение об ошибке является 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
в основной части? Они настроены на одинаковые диапазоны, которые вы жестко закодировали с цифрами.
Можете ли вы объяснить, что вы подразумеваете под «Я не получил его на работу»? Вы получаете ошибки? Если да, то какая ошибка и какая строка вызывает ошибку? Если нет, опишите, как результирующий результат отличается от ожидаемого. –