我有这个VBA
代码,我编译并且直到几天前它运行正常。现在,显示一条错误消息,我无法弄清问题是什么。
首先设计代码以检查某个单元格中的值是否超过另一个单元格中的值(如果为true则返回错误消息)。
如果不是这种情况,我会删除由活动工作表和给定范围内的所有空行组成的副本。然后,根据工作簿中的某个单元格,将此副本保存到具有特定命名格式的其他位置。
然后关闭原始文件,使其以任何方式保持不变。我提供了下面的代码,问题发生在读取的行上,一旦调试它突出显示并包括单词Then
。
出现的错误消息是
运行时错误' 13':类型不匹配
If Evaluate("Sumproduct(len(" & r.rows(i).Address(external:=True) & "))") = 0 Then r.rows(i).Delete xlShiftUp'
工作表受到保护,因此有代码可以在需要时解锁并锁定工作表。
代码:
Sub CommandButton1_Click()
ActiveSheet.Unprotect Password:="OperationHUMP"
ActiveSheet.Select
If (Range("C3") = "Change") Then
MsgBox "Total Gross Cost cannot exceed total budget for campaign."
Exit Sub
End If
ActiveSheet.Copy
Dim r As Range, rows As Long, i As Long
Set r = ActiveSheet.Range("B18:AB74")
rows = r.rows.Count
For i = rows To 1 Step (-1)
Application.DisplayAlerts = False
If Evaluate("Sumproduct(len(" & r.rows(i).Address(external:=True) & "))") = 0 Then r.rows(i).Delete xlShiftUp
Next
Dim SaveName As String
SaveName = ActiveSheet.Range("C5").Text
ActiveSheet.Protect Password:="OperationHUMP"
With ActiveWorkbook
.Worksheets("Media Plan").CommandButton1.Visible = False
.SaveAs "S:\Data\Staff Folders\Syed\Universal Media Plan - new template for Media team\Check\Test Save\" & SaveName & ".xls"
End With
Workbooks.Open ("S:\Data\Staff Folders\Syed\Universal Media Plan - new template for Media team\Check\Test Save\" & SaveName & ".xls")
Workbooks("Media Plan Template Macr Version Check - v2.xlsb").Close False
End Sub