所以我有一系列从A列到J的数据(行可以变化)。我需要我的宏做的是选择行a中的单元格值是IGNORE或#N / A并清除整行的内容。之后我让VBA删除所有空白行。我遇到的问题是VBA不想拿起“#N / A”值并清除内容 - 如果我把它留下来,它只是我想要的只有IGNORE。
请有人可以协助 - 我认为这可能与N / A没有被接收为文本有关吗?
谢谢。
Dim end_range As Double
Dim n As Double
'Set the range in which to search for Ignore
Sheets("Submit").Select
Range("A1").End(xlDown).Select
end_range = ActiveCell.Row
'Store the values of in a range
ReDim storeval(end_range)
For n = 1 To end_range
storeval(n) = Range(Cells(n, 1), Cells(n, 1)).Value
Range(Cells(n, 2), Cells(n, 2)).Value = storeval(n)
Next n
'Delete the entirerow if the value contains ignore or N/A
For n = 1 To end_range
If storeval(n) = "IGNORE" Or storeval(n) = "#N/A" Then
Range("A" & n).EntireRow.ClearContents
End If
Next n
Sheets("Submit").Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
答案 0 :(得分:3)
如果您在单元格中使用.jp-sleek.jp-video,
.jp-sleek.jp-audio.jp-state-no-volume-support {
.hideElement(~'.jp-repeat', 400px);
&:not(.jp-state-full-screen){ /* take the not part out and put it as a block */
.hideElement(~'.jp-title-container', 530px);
}
.hideElement(~'.jp-download', 580px);
}
.jp-sleek.jp-audio:not(.jp-state-no-volume-support) {
.hideElement(~'.jp-full-screen', 400px);
.hideElement(~'.jp-repeat', 450px);
&:not(.jp-state-full-screen) { /* take the not part out and put it as a block */
.hideElement(~'.jp-title-container', 580px);
}
.hideElement(~'.jp-download', 630px);
}
,则您看到的=NA()
只是错误对象的文本表示形式。
因此,您需要测试是否:{/ p>,而不是使用#N/A
storeval(n) = "#N/A"
IsError
这是一个小函数,它会给你真实的是单元格是NA而假如果它不是NA:
CVErr(xlErrNA)
然后通过Function IsNa(value)
If Not IsError(value) Then
IsNa = False
ElseIf value = CVErr(xlErrNA) Then
IsNa = True
Else
IsNa = False
End If
End Function
答案 1 :(得分:2)
要发现"#N/A"
,您需要查找单元格的值CVErr(xlErrNA)
您可能还想将If
和Or
切换为Select Case
For n = 1 To end_range
Select Case storeval(n)
Case "IGNORE", CVErr(xlErrNA)
Range("A" & n).EntireRow.ClearContents
End Select
Next n