如何获得以空格开头和以*结尾的字符长度。这是图像。 B列显示了dasher( - )和我的代码
之前的总len
Sub xn()
Dim x As Integer
x = 1
If Worksheet("Sheet1").Range("A"& x).len(Right," ") Or _
Worksheet("Sheet1").Range("A"&x)len(Left,"-") Then
len(totallen)
End If
x = x + 1
End Sub
答案 0 :(得分:1)
发布的代码有多个问题:
Worksheet
不是有效对象 - 您需要使用Worksheets
。.len
不是Range对象的属性。.len
是一个范围的属性,你也需要一个
在此处取消引用运算符(又名“。”):Range("A"&x)len(Left,"-")
Len()
,则只需要一个参数。Right
是一个函数,但是你在没有参数的情况下调用它,它们不是可选的。Left
是一个函数,但你也没有调用它
必要的论点。totallen
未在任何地方声明,因此Len(totallen)
会假设
那个totallen是Variant(默认为未声明的变量)
将它转换为String,然后始终返回0,因为它从未
得到了一个价值。解决方案是使用InStr function。它返回给定子字符串的字符串中的位置。
Sub xn()
Dim x As Long
Dim sheet As Worksheet
Set sheet = ActiveWorkbook.Worksheets("Sheet1")
For x = 1 To sheet.Range("A" & sheet.Rows.Count).End(xlUp).Row
sheet.Cells(x, 2) = InStr(1, sheet.Cells(x, 1), "-") - 1
Next x
End Sub
我还建议您查看有关Looping Through a Range of Cells(2003年份,但仍然有效)和Error Finding Last Used cell In VBA的MSDN文章。