gpt4 book ai didi

Excel VBA 运行时错误 : method "color" of object "interior" failed

转载 作者:行者123 更新时间:2023-12-04 20:17:26 24 4
gpt4 key购买 nike

我正在使用在上一个问题中得到帮助的代码:( VBA Excel find and replace WITHOUT replacing items already replaced )

我有以下代码用于替换列中的项目:
子替换_Once()
Application.ScreenUpdating = False

LastRow = Range("A" & Rows.Count).End(xlUp).Row
Range("A1:A" & LastRow).Interior.ColorIndex = xlNone
For Each Cel In Range("B1:B" & LastRow)
For Each C In Range("A1:A" & LastRow)
If C.Value = Cel.Value And C.Interior.Color <> RGB(200, 200, 200) Then
C.Interior.Color = RGB(200, 200, 200)
C.Value = Cel.Offset(0, 1).Value
End If
Next
Next

这适用于小文件,但是当 A 列的长度接近 3800 并且 B 和 C 大约有 280 次 Excel 崩溃时,我收到以下错误:

Run-time error '-2147417848 (800810108)':

Method 'Color' of object "Interior' failed



任何想法为什么会发生这种情况?

编辑:只是为了澄清错误似乎发生在该行
If C.Value = Cel.Value And C.Interior.Color = RGB(200, 200, 200) Then

最佳答案

我对你的代码做了一些优化。

  • 声明变量/对象
  • 减少你的循环时间。早些时候,您的代码正在循环 201924100次(14210 列 A 行 X 14210 列 B 行)。您不必这样做,因为 B236以后是空的。现在循环只运行 3339350次。 (14210 列 A 行 X 235 列 B 行)
  • 整个代码在 1 Min 53 Seconds 中完成.见 Output in Immediate window在帖子的末尾。

  • 尝试这个。这对我有用。在 Excel 2013 中对其进行了测试。
    Sub Replace()
    Dim ws As Worksheet
    Dim A_LRow As Long, B_LRow As Long
    Dim i As Long, j As Long

    Application.ScreenUpdating = False

    Debug.Print "process started at " & Now

    Set ws = ThisWorkbook.Sheets("Sheet1")

    With ws
    '~~> Get Col A Last Row
    A_LRow = .Range("A" & .Rows.Count).End(xlUp).Row
    '~~> Get Col B Last Row
    B_LRow = .Range("B" & .Rows.Count).End(xlUp).Row

    .Range("A1:A" & A_LRow).Interior.ColorIndex = xlNone

    For i = 2 To B_LRow
    For j = 2 To A_LRow
    If .Range("A" & j).Value = .Range("B" & i).Value And _
    .Range("A" & j).Interior.Color <> RGB(200, 200, 200) Then
    .Range("A" & j).Interior.Color = RGB(200, 200, 200)
    .Range("A" & j).Value = .Range("B" & i).Offset(0, 1).Value
    DoEvents
    End If
    Next j
    Next i
    End With

    Application.ScreenUpdating = True

    Debug.Print "process ended at " & Now
    End Sub

    立即窗口中的输出
    process started at 10/18/2013 6:29:55 AM
    process ended at 10/18/2013 6:31:48 AM

    关于Excel VBA 运行时错误 : method "color" of object "interior" failed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19438085/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com