【发布时间】:2017-06-14 16:35:23
【问题描述】:
这里我遇到问题返回 1010 逻辑测试。它应该检查范围内的每个单元格,如果单元格包含数字,则退出循环。如果范围内的任何单元格包含值,则返回 1,如果所有单元格为空白,则返回 0。我尝试了工作表函数 CountIf、CountA、Not IsEmpty、IsText 但结果不同似乎空白单元格包含不可见的字符串。 IsNumeric 适用于单个单元格,但当包含范围时它不起作用。我还注意到我第一次运行它时会产生结果,第二次运行会导致错误。请帮忙,我的范围需要是可变的。
Sub Try()
Dim path As String, myfile As String, file As String
Dim wb As Workbook
Dim i As Integer
Dim NCell As Range
Dim IsNumber As Boolean
path = "E:\SouthNorth\"
myfile = path & "1979.xls"
file = Dir(myfile)
Set wb = Workbooks.Open(Filename:=path & file)
wb.Activate 'necessary?
i = 24
'here object defined error
For Each NCell In Worksheets("Sheet1").Range(Cells(i, 2), Cells(i, 4))
If IsNumeric(NCell) Then
IsNumber = True
If IsNumber = True Then Exit For
End If
Next NCell
Select Case IsNumber
Case True
wb.Worksheets("Sheet2").Range("B" & i) = 1
Case False
wb.Worksheets("Sheet2").Range("B" & i) = 0
End Select
End Sub
【问题讨论】:
-
IsNumeric判断空白单元格为数字。这是你的问题吗? -
@SJR,不,IsNumeric 工作正常。我只是想表明所有提到的工作表功能都不起作用。例如。 3 个单元格全部为空白,但 CountA() 返回 3。CountIf(" ") 返回 0,IsText() 返回 True。所以我继续使用 IsNumeric()...