梳理LEFT和LEN功能

时间:2018-03-19 21:23:12

标签: excel vba excel-vba

我正在尝试编写代码来组织数据转储。
基本上我需要提取 asdf来自: 123456 asdf 123456789

我可以在Excel中以正常工作表模式执行此操作,但我在VBA中遇到此问题。从理论上讲,下面的代码应该返回9个空格的字符串,右边9个空格,但代码只是挂起并出现错误。

Set wks = ActiveWorkbook.ActiveSheet
LastRow = wks.UsedRange.Rows.Count
For MyRow = 1 To LastRow
    celltxt = wks.Cells(MyRow, 1).Text
    If InStr(1, celltxt, "name") Then
        LString = Len(wks.Cells(MyRow, 1))
        wks.Cells(MyRow, 1) = RIGHT(LEFT(wks.Cells(MyRow, 1),LString-6),LString -9)
    End If
Next For

2 个答案:

答案 0 :(得分:0)

没关系,明白了。我已经定义了变量celltxt,所以我可以参考LEN函数。它一定是一个错误,因为我试图引用我正在编辑的单元格的方式。

If InStr(1, celltxt, "name") Then
    wks.Cells(MyRow, 1) = Right(Left(celltxt, Len(celltxt) - 7), Len(celltxt) - 16)
End If

答案 1 :(得分:0)

简单地用什么都不替换字符串部分会不会更容易?

For MyRow = 1 To LastRow
     wks.Cells(MyRow, 1) = replace(wks.Cells(MyRow, 1), "name", vbnullstring, vbtextcompare)
Next For