VBA代码标点符号错误检查与修正

本文分析了一段VBA代码中存在的标点符号错误,并提供修正后的完整代码。

**原始代码:**vbaPrivate Sub CommandButton1_Click()On Error Resume NextWith Sheets('合同台账') r = .Cells(.Cells.Rows.Count. 'C').End(3).Row arr = .Range('C4:AE' & r)End With

Dim str1 As String, str2 As String, str3 = String With Me str1 = .tt1.Value str2 = .tt2.Value str3 = .tt3.Value End With

If str1 = '' And str2 = '' And str3 = '' Then MsgBox '请输入至少一个查询条件,以方便系统为您查询相应数据!', vbInformation. '系统提示': Exit Sub

ReDim brr(1 To UBound(arr). 1 To UBound(arr. 2) + 1) For i = 1 To UBound(arr) IF (str1 = '' Or (arr(i, 1) Like '' & str1 & '') And str1 <> '') _ And (str2 = '' Or (arr(i, 2) Like '' & str2 & '') And str2 <> '') _ And (str3 = '' Or (arr(i, 21) Like '' & str3 & '') And str3 <> '') Then m = m + 1 For j = 1 To UBound(arr, 2) brr(m, 1) = m brr(m, j + 1) = arr(i, j) Next End If Next With Sheets('合同查询') If m > 0 Then .Range('B4:AE60000').ClearContents .Range('B4').Resize(UBound(brr), UBound(brr, 2)) = brr MsgBox '数据查询完毕', vbInformation, '系统提示' Else .Range('B4:AE60000').ClearContents MsgBox '抱歉,没有符合条件的数据,请您再次查证所录入的查询条件是否存在!', vbInformation, '系统提示' End If End WithEnd Sub

错误分析:

  1. 第5行: .Cells.Rows.Count. 最后一个点号多余,应该修改为 .Cells.Rows.Count。2. 第11行: vbInformation. 最后一个点号多余,应该修改为 vbInformation。3. 第20行: ReDim brr(1 To UBound(arr). 1 To UBound(arr. 2) + 1) 第一个 UBound 函数的右括号后面有一个多余的点号,应该修改为 ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2) + 1)。4. 第24行和第28行: IF 应该改为小写字母 If。5. 第8行: str3 = String 缺少具体的字符串值,应该修改为 str3 = ''。6. 第33行和第37行: .Range('B4:AE60000').ClearContents 应该在 ClearContents 后面加上括号,修改为 .Range('B4:AE60000').ClearContents()

**修正后的代码:**vbaPrivate Sub CommandButton1_Click() On Error Resume Next With Sheets('合同台账') r = .Cells(.Cells.Rows.Count, 'C').End(xlUp).Row arr = .Range('C4:AE' & r) End With

Dim str1 As String, str2 As String, str3 As String    With Me        str1 = .tt1.Value        str2 = .tt2.Value        str3 = .tt3.Value    End With

If str1 = '' And str2 = '' And str3 = '' Then        MsgBox '请输入至少一个查询条件,以方便系统为您查询相应数据!', vbInformation, '系统提示'        Exit Sub    End If

ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2) + 1)    For i = 1 To UBound(arr)        If (str1 = '' Or (arr(i, 1) Like '*' & str1 & '*') And str1 <> '') _        And (str2 = '' Or (arr(i, 2) Like '*' & str2 & '*') And str2 <> '') _        And (str3 = '' Or (arr(i, 21) Like '*' & str3 & '*') And str3 <> '') Then            m = m + 1            For j = 1 To UBound(arr, 2)                brr(m, 1) = m                brr(m, j + 1) = arr(i, j)            Next        End If    Next    With Sheets('合同查询')        If m > 0 Then            .Range('B4:AE60000').ClearContents()            .Range('B4').Resize(UBound(brr), UBound(brr, 2)) = brr            MsgBox '数据查询完毕', vbInformation, '系统提示'        Else            .Range('B4:AE60000').ClearContents()            MsgBox '抱歉,没有符合条件的数据,请您再次查证所录入的查询条件是否存在!', vbInformation, '系统提示'        End If    End WithEnd Sub

注意: 以上修改仅修复了标点符号错误和其他小错误。实际应用中,您可能还需要检查其他可能的逻辑错误或语法错误。

VBA代码标点符号错误检查与修正

原文地址: https://www.cveoy.top/t/topic/bHxs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录