请协助编写宏来清理数据条目

时间:2015-10-26 09:53:15

标签: excel excel-vba excel-formula excel-2013 vba

对于很多人来说应该很容易的快速问题,但是我并不熟悉VBA或代码,但我有一个问题,即只有一个宏或一段VBA代码可以解决我。我必须逐个单元地编辑电子表格中的大量数据条目。

关于这个问题。你能给我一个例子或者提供一个完整的宏来供我编辑这些单元吗?

我需要的编辑如下:

我需要读取以下范围内的每个单元格:B2到Q383。需要检查和编辑的典型条目如下所示:629.64 \ 3.00 \ 01:30

现在需要做的是第一个" \"左边的所有内容。以及第二个" \"需要从每个单元格中删除,包括" \"。

我试图摆弄LEFT和RIGHT命令,我可以用这样的东西输出需要从细胞中删除的数据

=左(B11,查找(" \",B11) - 1)

那么宏中的delete命令会针对该单元格中的数据选择?或者如何使用带有这些参数的删除命令?

提前感谢任何建议或答案!

1 个答案:

答案 0 :(得分:1)

不是100%确定你之后的内容 - 你说你想要从左边和右边删除这些位,但公式会返回左边的位。

无论如何,这里有3个公式: 左: = TRIM(左(B11,找到(" \",B11)-1)) 中间: = LEFT(MID(B11,FIND(" \",B11)+ 1,LEN(B11)),FIND(" \" ,MID(B11,FIND(" \",B11)+ 1,LEN(B11))) - 1)
右: = MID(B11,FIND(" \",SUBSTITUTE(B11," \","〜", 1))+ 1,LEN(B11))

还有三个VBA功能 (按照公式 - = leftbit(B11)使用这些,或者如果你正在寻找反斜杠以外的东西 - = leftbit(B11," |&# 34;)会将I-bar视为分隔符。)

Public Function LeftBit(target As Range, Optional Divider As String = "\") As String

    LeftBit = Trim(Left(target, InStr(target, Divider) - 1))

End Function

Public Function MiddleBit(target As Range, Optional Divider As String = "\") As String

    Dim First As Long, Second As Long

    First = InStr(target, Divider)
    Second = InStr(First + 1, target, Divider)

    MiddleBit = Mid(target, First + 1, Second - First - 1)

End Function

Public Function RightBit(target As Range, Optional Divider As String = "\") As String

    RightBit = Right(target, Len(target) - InStrRev(target, Divider))

End Function