在列范围内输入公式,但范围类的选择方法失败

时间:2018-07-02 23:11:59

标签: excel vba excel-vba range week-number

请让我知道是否需要更具体。我在工作表isum的工作簿stock上输入一个weeknum()公式。我希望对第二行开始的“ X”列中的所有内容都使用此公式,因为第一行将是标签。我使用了宏记录器,但由于“范围类的选择方法失败”而出现错误1004。编写此代码可能是更好的方法。之后,我要在“过去”列中设置任何小于27的weeknum值。 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 :(得分: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])"

(链接-Here是如何/为什么避免在VBA中使用SELECT的很好参考)


编辑:设置工作簿的另一种方法:

set wb = ThisWorkbook