Excel 在保存启用宏的文件时出错

问题描述 投票:0回答:2

我对vba很陌生,下面的很多代码都是在网上找到的。

Option Compare Text

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rngCell     As Range
    Dim rngRange    As Range
    Dim strLookFor  As String
    Dim arrChar     As Variant
    Dim lngCounter  As Long
    
    
    Set activeTable = ActiveSheet.ListObjects("Table1")
    
   
    activeTable.Range.AutoFilter Field:=10, Criteria1:="*" & [J3] & "*", Operator:=xlFilterValues
    Set rRng = ActiveSheet.Range("J3")
    
    If IsEmpty(rRng.Value) Then
        activeTable.AutoFilter.ShowAllData
        activeTable.ListColumns(10).Range.Font.Color = vbBlack
    Else
        Call Highlight_words
    End If
    
End Sub


Private Sub Highlight_words()
    
    
    Set rngRange = Range("J7:J" & Cells(Rows.Count, "J").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    rngRange.Font.Color = vbBlue
    strLookFor = Range("J3").Value
    
    Application.EnableEvents = False

    For Each rngCell In rngRange
        For lngCounter = 1 To Len(rngCell) - Len(strLookFor) + 1
            If Mid(rngCell, lngCounter, Len(strLookFor)) = strLookFor Then
                rngCell.Characters(lngCounter, Len(strLookFor)).Font.Color = vbRed
            End If
        Next lngCounter
    Next rngCell

    Application.EnableEvents = True
    
End Sub

虽然代码似乎在我的工作表中工作,但每次我尝试将其保存在“桌面>文件名”(作为 XLSM 文件)中时,都会出现以下错误:

保存“文件名”时检测到错误。 Microsoft Excel 或许能够通过删除或修复某些功能来保存文件。要在新文件中进行修复,请单击继续。要取消保存文件,请单击取消。

我注意到,如果我取消隐藏 for 循环,它只会给我错误。所以我想知道 for 循环出了什么问题?

excel vba filtering
2个回答
0
投票
  1. 打开Excel(空白文件)
  2. 文件 > 打开
  3. 导航至文件
  4. 使用“打开”按钮旁边的箭头
  5. 打开并修复

0
投票

尝试以 XLSM 格式保存文件时,您可能会看到由于 VBA 代码或其与 Excel 功能交互方式而导致的错误。

根据我从您的代码中了解到的内容,我想强调以下几点。

  1. 确保Len(strLookFor)返回的长度不大于rngCell的值。如果发生这种情况,可能会导致越界错误。
  2. 这个嵌套循环过程可能会使用大量内存和CPU资源,具体取决于rngRange的大小。如果 rngRange 跨越较宽的单元格范围,Excel 可能会遇到资源限制,这可能会导致保存问题。
  3. 要捕获循环迭代期间可能出现的任何潜在错误,请添加错误处理技术。
  4. 验证工作簿的 VBA 代码和任何独特功能是否与 XLSM 文件格式兼容。

这是我在谷歌上找到的一些参考资料- https://www.reddit.com/r/excel/comments/ld6hye/learn_to_fix_errors_were_Detected_while_ saving/ https://learn.microsoft.com/en-us/answers/questions/53015/microsoft-should-fix-errors-were-Detected-while-sa?source=docs

© www.soinside.com 2019 - 2024. All rights reserved.