我试图激活一个每月有三列(Jan-Dec)的电子表格。如果月份不在过去,那么第三列应该将另外两列相加(否则为空)。这应该从第6行应用到LastRow
。
我的问题是我无法弄清楚如何正确使用LastRow
。需要事先使用不同的列来定义它,我可以回复没有任何缺失值。
我一直试图在LastRow
中抓住这一行,但我认为我必须做一些根本错误的事情,因为set sh.LastRow
出现类型不匹配错误:
Sub Prep_datadump()
Dim sh As Worksheet
Dim Dataset as Range
Dim LastRow As Range
Dim Month As Integer
Set sh.Dataset.Range("C6:C" & .Range("C" & .Rows.Count).End(xlUp).Row)
Set LastRow = Dataset.End(xlDown).Row
For Month = 14 To 47 Step 3
If Cells(1, Month) >= Date Then
Sh.Range(Cells(6, Month), Cells(LastRow, Month)).FormulaR1C1 = "=sum(RC[-2],RC[-1])"
End If
Next Month
End Sub
答案 0 :(得分:0)
您遇到问题的行(Set LastRow = Dataset.End(xlDown).Row
)会尝试将Dataset
范围内底部单元格的行号作为整数分配给LastRow
变量。当您第一次将LastRow
定义为Range
时,代码无法执行此操作,因为它是一种不同的变量类型,因此您会收到不匹配错误。
尝试将Dim LastRow As Range
行更改为Dim LastRow As Integer