Vba ActiveCell.公式错误438';对象没有';t支持';

Vba ActiveCell.公式错误438';对象没有';t支持';,vba,excel,Vba,Excel,此代码用于计算从sheet1在我创建的新工作表stock_returns上提供的股票的月度回报。它将计算第一个框,然后根据变量j、k和l自动填充其余数据。然而,第一个activecell细胞系不断出现错误,我不知道如何改变它 'select stock names and paste to next sheet named monthly returns Dim a As Integer Dim j As Integer Dim k As Integer j = stocknum + 3 k

此代码用于计算从sheet1在我创建的新工作表stock_returns上提供的股票的月度回报。它将计算第一个框,然后根据变量j、k和l自动填充其余数据。然而,第一个activecell细胞系不断出现错误,我不知道如何改变它

'select stock names and paste to next sheet named monthly returns
Dim a As Integer
Dim j As Integer
Dim k As Integer

j = stocknum + 3
k = stocknum + 5
l = stocknum + stocknum + 5

Worksheets("stock_returns").Activate

ActiveCell.FormulaR3C2 = "=('Sheet1'!B9-'Sheet1'!B10)/'Sheet1'!B10"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:Bj" & Lastrow), Type:=xlFillDefault

Range("Bk").Value = Range("B2") - Range("Bj")
Range("Bk").Select
Selection.AutoFill Destination:=Range("Bk:Bl" & Lastrow), Type:=xlFillDefault
ActiveCell.公式3C2=“=('Sheet1'!B9-'Sheet1'!B10)/'Sheet1'!B10”

没有,但有一个。这是指在提供的公式中使用的单元格寻址的类型,但您使用的是公式中的样式

改用新的

交替使用as


即使@Jeeped建议进行调整,我也不相信您的VBA会编译。我不确定您想要什么结果,但至少您应该从以下版本中获得一些结果:

Sub Stance()
Dim a As Integer
Dim j As Integer
Dim k As Integer

j = stocknum + 3
k = stocknum + 5
l = stocknum + stocknum + 5
Lastrow = Range("a" & Rows.Count).End(xlUp).Row

Worksheets("stock_returns").Activate

Cells(3, 2).Formula = "=('Sheet1'!B9-'Sheet1'!B10)/'Sheet1'!B10"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B" & j + Lastrow), Type:=xlFillDefault

Range("B" & k).Value = Range("B2") - Range("B" & j)
Range("B" & k).Select
Selection.AutoFill Destination:=Range("B" & k & ":B" & Lastrow), Type:=xlFillDefault
End Sub
ActiveCell.FormulaR1C1 = "=('Sheet1'!R9C2-'Sheet1'!R10C2)/'Sheet1'!R10C2"
Sub Stance()
Dim a As Integer
Dim j As Integer
Dim k As Integer

j = stocknum + 3
k = stocknum + 5
l = stocknum + stocknum + 5
Lastrow = Range("a" & Rows.Count).End(xlUp).Row

Worksheets("stock_returns").Activate

Cells(3, 2).Formula = "=('Sheet1'!B9-'Sheet1'!B10)/'Sheet1'!B10"
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B" & j + Lastrow), Type:=xlFillDefault

Range("B" & k).Value = Range("B2") - Range("B" & j)
Range("B" & k).Select
Selection.AutoFill Destination:=Range("B" & k & ":B" & Lastrow), Type:=xlFillDefault
End Sub