目前,我有一张Excel工作表,可以计算出每天变化的某些价格。我希望有一个vba按钮,该按钮记录每天的价格以供参考,每天保存数据的最新价格(我每天都会频繁更新价格) 我在下面编写了代码,但似乎收到了错误:
编译错误:限定词无效
[在第一行LastRow.Offset()
上)。我是vba的新手,所以我们将不胜感激
Private Sub CommandButton1_Click()
'Selecting the data to copy
Range("C23:O23").Select
Selection.Copy
'Find the last used row in Column B
Dim LastRow As Long
With ActiveSheet
LastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
End With
'if still today, replace data, if not record the data on the next line
If LastRow = Date Then
LastRow.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Else
LastRow.Offset(1, 0) = Date
LastRow.offset(1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats,
Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
End Sub
更新:因此,我更改了一些代码,在其中我分别定义了LastRow变量:
Dim LastRow As Range
Set LastRow = Range("B31").End(xlDown)
在else语句之后的行中,这似乎导致了另一个错误“ 1004”
LastRow.Offset(1, 0).Value = "=today"
任何建议将不胜感激
答案 0 :(得分:2)
LastRow被定义为Long
Dim LastRow As Long
然后,您尝试使用Offset
方法,该方法仅在Range
对象上可用。
进行以下更改,您应该会很好。
Dim LastRow As Range
With ActiveSheet
Set LastRow = .Cells(.Rows.Count, "B").End(xlUp)
End With
阅读how and why to avoid select上的这篇文章也将带您进一步。上面的代码可以进行优化以更智能地工作。
答案 1 :(得分:0)
看起来您的else语句中有错字:
LastRow.oofset(1, 1).Select