我有一个不断更新的电子表格,并且为了跟踪更新,我想将一个公式插入到AL列中,该列从指令页面中绘制一个数字,我希望将该公式转换为一个值,以便它不会一直变化(每次更新工作表时,此数字都会变化)。
问题是,我不知道如何定义范围-我的代码有效,并且粘贴了数据,插入了公式,然后仅将其转换为值。但是它对整个列都执行此操作,因为它在AL1中定义。我想为上一个最后使用的行定义它,然后在粘贴新数据之后,我希望它在新数据的最后使用的行处停止。我不太确定我的解释是否有意义,因此,如果您有任何疑问或想法,请告诉我如何执行此操作!谢谢:)
With ThisWorkbook
With .Sheets("ABC")
.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial
lrFormula = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
Set Period = .Range("AL1:AL" & lrPPV)
Period.Formula = "=Instructions!$E$33"
Period.Value = Period.Value
End With
End With
答案 0 :(得分:1)
尝试:
Dim Lastrow As Long
With ThisWorkbook
With .Sheets("ABC")
Lastrow = .Cells(.Rows.Count, "A").End(xlUp).Row 'Lastrow before paste
.Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0).PasteSpecial
lrFormula = .Cells(.Rows.Count, "A").End(xlUp).Offset(1, 0)
Set Period = .Range("AL" & Lastrow & ":AL" & lrPPV)
Period.Formula = "=Instructions!$E$33"
Period.Value = Period.Value
End With
End With