Ввод формулы в диапазон столбцов, но выбор метода класса диапазона не удался

Пожалуйста, дайте мне знать, если мне нужно быть более конкретным. Я ввожу формулу weeknum() в своей книге isum на листе stock, Я хочу, чтобы эта формула была оценена для всего в столбце "X", начиная со строки 2, поскольку верхняя строка будет меткой. Я использовал макрос-рекордер, но получаю ошибку 1004, потому что мой "метод выбора класса диапазона не удался". Вероятно, есть лучший способ написания этого кода. После этого я хочу сделать любое значение Weeknum меньше 27 в этом столбце "Прошлое". isum моя рабочая тетрадь и stock мой лист в этой книге. Я просто увеличил диапазон до определенной суммы, а не использованной суммы, которую хочу получить. Вот мой код до сих пор: isum.Sheets("stock").Range("X2").Select ActiveCell.FormulaR1C1 = "=WEEKNUM(RC[-9])" Selection.AutoFill Destination:=Range("X2:X900").Select Range("X2:X900").Select

1 ответ

Ваш код может быть упрощен до:

'Declare variables
dim wb as Workbook
dim ws as Worksheet
dim rng as Range

'Set variables
set wb = Workboooks("isum.xlsx") 'check the file extension & name is correct
set ws = wb.Worksheets("stock")
set rng = ws.range("X2:X900")

'Fill range with formula
rng.FormulaR1C1 = "=WEEKNUM(RC[-9])"

(Ссылка - вот отличная ссылка на то, как / почему следует избегать использования SELECT в VBA)


Изменить: еще один способ установить книгу:

set wb = ThisWorkbook
Другие вопросы по тегам