Ввод формулы в диапазон столбцов, но выбор метода класса диапазона не удался
Пожалуйста, дайте мне знать, если мне нужно быть более конкретным. Я ввожу формулу 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