嵌套...每个循环与If语句
问题描述:
我是vb.script的新手,所以这可能只是一个格式问题,我找不到答案。 问题是验证同一工作簿中不同工作表上的单元格中的数据。嵌套...每个循环与If语句
循环通过工作表,然后通过细胞循环范围:
Private Sub Validate(ByRef objWorkbook As Workbook)
Dim strPattern As String: strPattern = "^\-{0,1}\d+(.\d+){0,1}$"
Dim regEx As New VBScript_RegExp_55.RegExp
Dim strInput As String
Dim strOutput As String
Dim Myrange As Range
Dim regExCount As Object
Set regExCount = CreateObject("vbscript.regexp")
On Error Resume Next
For Each objWorksheet In objWorkbook.Worksheets
If (UCase(objWorksheet.Name) = "Foo") Then
objWorksheet.Select
Range("Q2").Select
ElseIf (UCase(objWorksheet.Name) = "Bar") Or (UCase(objWorksheet.Name) = "Poo") Then
objWorksheet.Select
Set Myrange = ActiveSheet.Range("D51:AA76")
For Each cell In Myrange.Cells
If strPattern <> "" Then
strInput = cell.Value
strReplace = ""
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
Set regExCount = regEx.Execute(strInput)
If regExCount.Count = 0 Then
strOutput = strOutput + "Illegal character at " + cell.AddressLocal + "\r\n"
End If
Next cell
End If
Next
MsgBox (strOutput)
End Sub
我编译时得到一个接着的误差没有在对于下一个信元环。删除该行,我得到一个块的错误如果没有结束Ff突出显示结束小组。添加一个End如果在End子之前,我得到一个没有For For错误的Next。
答
是不是这个块丢失和结束?
If strPattern <> "" Then
strInput = cell.Value
strReplace = ""
答
你
If strPattern <> "" Then
不
End If ' regExCount.Count
Next cell ' In Myrange.Cells
之间关闭