将两个空白字符之间的字符计数到vba中的破折号()

时间:2015-04-22 01:31:21

标签: vba

如何获得以空格开头和以*结尾的字符长度。这是图像。 B列显示了dasher( - )和我的代码

之前的总len

enter image description here

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

1 个答案:

答案 0 :(得分:1)

发布的代码有多个问题:

  1. Worksheet不是有效对象 - 您需要使用Worksheets
  2. .len不是Range对象的属性。
  3. 即使在.len是一个范围的属性,你也需要一个 在此处取消引用运算符(又名“。”):Range("A"&x)len(Left,"-")
  4. 如果您打算使用函数Len(),则只需要一个参数。
  5. 您显然正在尝试循环,但您需要使用For 或For Each循环 - 当你递增x时它不会自动循环 在潜艇的底部。
  6. Right是一个函数,但是你在没有参数的情况下调用它,它们不是可选的。
  7. 同样,Left是一个函数,但你也没有调用它 必要的论点。
  8. totallen未在任何地方声明,因此Len(totallen)会假设 那个totallen是Variant(默认为未声明的变量) 将它转换为String,然后始终返回0,因为它从未 得到了一个价值。
  9. 我可能错过的任何其他内容。
  10. 解决方案是使用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文章。

相关问题