请让我知道是否需要更具体。我在工作表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
答案 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