Мне нужно сканировать определенные ячейки в диапазоне. Если некоторые ячейки пусты, то сообщение «cell empty» будет записано в этой конкретной пустой ячейке. Я пытался следующее:Ошибка времени выполнения # 13 - несоответствие типа (если диапазон ... затем ...)
Sub Empty()
Sheets("My sheet").Select
If Range("C5:C12,C15:C22,C25:C32,C36:C43,C46:C53,C56:C63,C66:C73,C76:C83,D4,D14,D24,D35,D45,D55,D65,D75").Value = "" Then
Range("C5:C12,C15:C22,C25:C32,C36:C43,C46:C53,C56:C63,C66:C73,C76:C83,D4,D14,D24,D35,D45,D55,D65,D75").Value = "cell is empty"
End If
End sub
I am getting the error: run time error #13 - type mismatch.
Так, чтобы помочь любым другим людям, которые, возможно, имели такую же проблему, как и я, я собираюсь дополнить рабочие решения, представленные ниже. Обратите внимание, что я добавил обработку об ошибке, которая предотвращает сообщение «во время выполнения ошибка„1004“: Не найдено ни одной клетки», а также массив для проверки конкретных рабочих листов, которые соответствуют вашим потребностям:
Sub myEmpty()
Dim rng As Range
On Error GoTo NoBlanks
Dim MyArray As Worksheet
For Each MyArray In ActiveWorkbook.Worksheets
Select Case MyArray.Name
Case Is = "Sheet 1", "Sheet 2", "Sheet 3", "Sheet n-1", "Sheet n"
With MyArray
Set rng = .Range("C5:C12,C15:C22,C25:C32,C36:C43,C46:C53,C56:C63,C66:C73,C76:C83,D4,D14,D24,D35,D45,D55,D65,D75")
If CBool(Application.CountBlank(rng)) Then
rng.SpecialCells(xlCellTypeBlanks).Value = "cell is empty"
End If
End With
Case Else
End Select
Next MyArray
NoBlanks:
CreateObject("WScript.Shell").Popup " There are no empty cells", 0.7, "INfo:"
End Sub
Благодарим вас за ответ. Это сработало! –