Excel 编译错误;尽管两者都有,但以无结尾
如果行中的特定单元格包含特定短语(该单元格包含的不仅仅是特定短语),则当前正在处理脚本以高亮显示该行。然而,在尝试测试时,我看到了错误“compileerror:End With without With”,我可以在代码中看到With和End With,尽管我可能已经看了太久而没有注意到明显的错误。有人注意到代码中可能导致这种情况的任何东西吗Excel 编译错误;尽管两者都有,但以无结尾,excel,vba,with-statement,Excel,Vba,With Statement,如果行中的特定单元格包含特定短语(该单元格包含的不仅仅是特定短语),则当前正在处理脚本以高亮显示该行。然而,在尝试测试时,我看到了错误“compileerror:End With without With”,我可以在代码中看到With和End With,尽管我可能已经看了太久而没有注意到明显的错误。有人注意到代码中可能导致这种情况的任何东西吗 Sub Conversion() Dim State As String Dim County As String Dim Date As String
Sub Conversion()
Dim State As String
Dim County As String
Dim Date As String
Dim TC As String
Dim H As String
Dim Tmp As String
Dim m As Long
Dim x As Long
H = "not recognised"
With Sheets("Matched Date")
For Each cell In Sheet
m = UBound(Split(Rng.Value, H))
If m > 0 Then
Tmp = ""
For x = 0 To m - 1
Tmp = Tmp & Split(Rng.Value, H)(x)
.Characters(Start:=Len(Tmp) + 1, Length:=y).EntireRow.Color = RGB(252, 227, 3)
Tmp = Tmp & H
Next
End If
End With
编辑:很抱歉这里的业余代码,我没有受过训练,只是试图根据简单的在线视频和谷歌指南来做这件事,因为我们没有其他人可以为我们做这件事。如上所述,正确的代码缩进是你的朋友。这样做,您的代码看起来像
With Sheets("Matched Date")
For Each cell In Sheet
m = UBound(Split(Rng.Value, H))
If m > 0 Then
Tmp = ""
For x = 0 To m - 1
Tmp = Tmp & Split(Rng.Value, H)(x)
.Characters(Start:=Len(Tmp) + 1, Length:=y).EntireRow.Color = RGB(252, 227, 3)
Tmp = Tmp & H
Next
End If
End With
这样,很容易发现您的第一个For
循环缺少结束下一个
此错误消息和类似的错误消息可能有点误导。它基本上意味着“此代码以某种方式遗漏了一个结束的“括号”,如果您将带/End With
、For/Next
、Select/End Select
等对看作是开始/结束括号对。您遗漏了一个Next
。使用这个很酷的工具,你会马上看到它。学会正确缩进你的代码。它使跟踪执行流程和识别此类问题变得更加容易。.Characters(开始:=Len(Tmp)+1,长度:=y)。EntireRow.Color=RGB(252227,3)
看起来问题很大。工作表
没有字符
属性<代码>字符
没有EntireRow
属性;而且EntireRow
(一个范围
)没有颜色属性。另外,尝试“标记”下一个s,因此对于x=1到10:next x
感谢@BigBen,橡皮鸭工具真的很有用!我希望我能在不把事情搞砸的情况下完成剩下的工作:P我一直在尝试用谷歌搜索我的大部分问题,只在我真的找不到答案时才提问。如评论中所述,。Characters(Start:=Len(Tmp)+1,Length:=y)。EntireRow.Color=RGB(252227,3)
有多个问题,只是一个注释。我预计不久会有另一个问题。