1
我試圖理解爲什麼我得到類型不匹配錯誤:類型不匹配VBA檢查單元格的值
這是我具備的功能,基本上它是從一個工作表複製到另一個事後刪除複製的第一個字符cells:
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
正在評估的單元格中,這些單元格的格式如何?如果它們被格式化爲數字,它當然找不到「_」 – Luuklag
也可以使用:IF NOT ...然後 – Luuklag
這些單元格的內容就像這樣:'_ = EVCVW($ G $ 2,F3)',它們被格式化爲一般;正如我所說,它有時有時,有時不工作,所有的工作表都格式相同 – user3540466