Ввод формулы в диапазон столбцов, но выбор метода класса диапазона не удался - PullRequest
0 голосов
/ 03 июля 2018

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

0 голосов
/ 03 июля 2018

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

'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
...