繁体   English   中英

类型不匹配VBA检查单元格值

[英]type mismatch VBA checking cell value

我试图理解为什么我收到类型不匹配错误:

这是我所拥有的功能,基本上是从工作表复制到另一个工作表,然后删除复制的单元格的第一个字符:

Sub copyBackFormulas()

Application.ScreenUpdating = False
Application.EnableEvents = False

'iterate through all worksheets
Dim WS_Count As Integer
WS_Count = ActiveWorkbook.Worksheets.Count
Dim I As Integer


For I = 1 To WS_Count
    Dim ws1 As Worksheet
    Set ws1 = ThisWorkbook.Worksheets(I)
    'if sheet contains evdre
    Set d = ws1.Cells.Find("EVDRE:OK")
    If Not d Is Nothing Then
        'copy back all formulas except from current view
        Dim wsTarget As Worksheet
        Set wsTarget = ws1
        nameHidden = ActiveSheet.Name & "_BPCOffline"
        Sheets(nameHidden).Visible = True
        Dim wsSource As Worksheet
        Set wsSource = Sheets(nameHidden)

        For Each c In wsSource.UsedRange.Cells
            If Left(c.Value, 1) = "_" Then
                    If Left(c.Value, 7) = "_=EVCVW" Then
                    Else
                        c.Copy wsTarget.Range(c.Address)
                    End If
            End If
        Next
        'Remove underscore
        For Each c In wsTarget.UsedRange.Cells
            If Left(c.Value, 1) = "_" Then
                c.Formula = Right(c.Value, Len(c.Value) - 1)
            End If
        Next
        wsSource.Visible = xlSheetHidden
    End If
    Range("A1").Select
Next I

Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.EnableEvents = True

End Sub

我有几张纸可能需要复印。 关键是我在行上遇到类型不匹配错误: If Left(c.Value, 1) = "_" Then ,如果我从其他工作表开始运行宏,则效果很好,或者仅执行了正确的操作在一张纸上而不是其他纸上。 我不明白是什么使它在某些时候起作用,而什么不起作用。 任何输入都受到高度赞赏

编辑:我认为问题与以下事实有关:宏可能找不到第一个条件If Left(c.Value, 1) = "_" Then

您无法复制具有错误值的粘贴公式

如果要跳过带有错误的单元格,则需要另一个If ... End if块:

If Not Iserror(c.Value) Then
...
End if

正如罗里在评论中解释的那样

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM