VBA代码标点符号错误检查与修正
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
错误分析:
- 第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
注意: 以上修改仅修复了标点符号错误和其他小错误。实际应用中,您可能还需要检查其他可能的逻辑错误或语法错误。
原文地址: https://www.cveoy.top/t/topic/bHxs 著作权归作者所有。请勿转载和采集!