我正在尝试调用一个子例程,当 Excel 工作表 TitlesList 的 B 列上的任何内容发生更改时,该子例程会将公式扩展到最后一行。在添加任何内容之前,公式不能存在,因此只能在 B 列中进行更改后存在于一行中。目的是允许来自 FLOW 的 API 在 excel 中插入一行,然后 excel 将应用一个公式来创建一个另一列中的新值,然后 FLOW 将更新 Planner 中的新值。(复杂?)具体来说,我试图确保规划器中的卡片标题始终在标题前具有唯一值。例如,如果卡片标题是:“这是卡片标题”,我有一个流程可以成功地将一行添加到 excel 中,但它会在工作表的最后一个空行中添加该行。那时我想扩展公式,添加一个序列号,例如第 23 号,在一个列中,然后连接序列号并创建一个新的列标题,如下所示:“23 - 这是一个卡片标题”然后 FLOW 将运行一个例程从 Excel 更新到 Planner,从而保持所有带有数字的卡片和任务。(如果计划人员允许自定义字段,认为这会更容易)。我在这个 VBA 中做错了什么。抱歉没有太多的VBA经验。
调用 sub 的代码是:
Private Sub Worksheet_Change(ByVal Targe As Range)
If Not Intersect(Target, Range("B2:B500")) Is Nothing Then
'If any changes occurr in column B
Call ExtendRows
' Then extend the formulas
End If
End Sub
扩展公式的代码是:
Sub ExtendRows()
lr = Cells.Find("ROW", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row
'find the last row with a formula
Range("A2").AutoFill Range("A2:A" & (lr + 1))
'fill the formula in the last row
End Sub
错误是:需要运行时错误“424”对象,它使我返回到 Worksheet_Change 代码。我究竟做错了什么?我已经阅读了有关此错误的所有信息,但我似乎无法弄清楚我该怎么做。我需要在某处声明什么吗?谢谢你。