1
我试图循环浏览工作簿,获取一些值并将其存储在其他工作表中。以下是我的代码。 Keepp获得VBA对象变量或使用块变量未设置错误。“对象变量或未设置块变量”
有人可以帮我找出哪里错了吗?
Sub analysis()
Dim i As Integer
Dim ws As Worksheet
For i = 4 To 197
ws = ActiveWorkbook.Sheets(i)
ws.Cells(1, 9) = ìstandardevî
ws.Cells(2, 9) = Application.WorksheetFunction.StDev(Range("D3:D34"))
ActiveWorkbook.Sheets(4).Cells(2, 1) = ws.Cells(2, 1)
Sheets(4).Cells(2, 2) = ws.Cells(3, 8)
Sheets(4).Cells(2, 3) = ws.Cells(2, 9)
Next i
End Sub
在VBA中,这不是一个基本类型任何变量(数,字符串,日期等)必须是“SET”,而不是仅分配给。我经常在一段时间后返回VBA时忘记这一点。 – JamesFaix
您也可以像这样“Dim mySheet as Worksheet:Set mySheet = ActiveWorkbook.Sheets(1)”来执行“内联”设置。这对你当前的循环情况没有帮助,但可以很方便。 – JamesFaix
@CarlFriedRiceGauss只有对象变量必须被设置,并且只有当变量被调暗时没有使用New关键字。你的主张过于宽泛。 –