使用自动填充和清除匹配相邻列 - 宏中的错误提示

Posted

技术标签:

【中文标题】使用自动填充和清除匹配相邻列 - 宏中的错误提示【英文标题】:Matching up Adjacent columns with Autofill and clear - Error Prompt in Macro 【发布时间】:2014-09-05 03:48:21 【问题描述】:

我编写了一个宏,它计算 A 和 B 两列中的行数。 如果 A 包含的行多于 B(实际上是“B:AK”),那么我将 B:AK 自动填充到 A 行。 但是如果自动填充出现故障或有人弄乱了工作表,如果 b>a 我清除 B:AK 直到 A 列的最后一行。 [代码] 子 Autof1ll()

Dim lSKUrow As Long
Dim lVOLrow As Long
Dim ix As Integer
Dim iy As Integer
Dim rngFormula As Range

With Workbooks("Raw Data Production").Worksheets("Raw Data")
   lSKUrow = .Range("A" & Rows.Count).End(xlUp).Row
   lVOLrow = .Range("B" & Rows.Count).End(xlUp).Row
   Set rngFormula = .Range("B" & ix & ":AK" & ix)

    ix = lSKUrow
    iy = lVOLrow

If x > y Then
    Workbooks("Raw Data Production").Worksheets("Raw Data").rngFormula.AutoFill Destination:=ActiveWorkbook.ActiveSheet.Range("B" & ix & ":AK" & ix)

Else
    If y > x Then
        ActiveWorkbook.ActiveSheet.Range("B" & ix + 1 & ":AK" & ix + 1).End(xlDown).Clear
    End If
End If
End With
End Sub

现在我不断收到错误提示,我不知道为什么。 他们突出显示这部分代码“Set rngFormula = .Range("B" & ix & ":AK" & ix)" 错误提示指出“运行时错误 1004,应用程序或对象定义错误...

有没有更好的方法来编写这部分代码?

【问题讨论】:

【参考方案1】:

在宏到达Set rngFormula 行之前,您还没有定义ix。此外,我没有在任何地方看到 xy 定义,而是在 if 语句中使用它们。

【讨论】:

以上是关于使用自动填充和清除匹配相邻列 - 宏中的错误提示的主要内容,如果未能解决你的问题,请参考以下文章

如果相邻单元格不为空 + 匹配,则从上面的单元格自动填充

通过 VBA 自动填充导致列清除

宏中的自动填充公式从 A 列到最后一列

VBA AutoFill 相邻动态列导致错误?

在Excel宏中引用行号的公式

excel宏中的运行时错误424