【问题标题】:Excel VBA to sum up a based on almost the same descriptionExcel VBA总结一个基于几乎相同的描述
【发布时间】:2018-01-10 08:37:46
【问题描述】:

我的问题:

我有一些数据,而值的基数是相同的,但最后可能是其他东西,例如:

V573589
V574695
V574695A
V574695B

目标:

我想要一个宏来识别,当它在单元格末尾找到“A”或“B”时,并删除最后的“A”和“B”。最重要的是,我希望它删除具有相同描述值的第一行,或者它可以对 3 个值求和。

目前我已经尝试使用 .Find("B",Lookat:=xlPart)... 但没有任何运气:(

【问题讨论】:

    标签: vba excel find


    【解决方案1】:

    要查找以字母结尾的值:

    Dim rng as Range
    dim cl as Range
    
    set rng = /define your column with data here/
    for each cl in rng
    If Right(cl, 1) = "A" Or Right(cl, 1) ="B" Then
        'Do whatever you want to
    End If
    

    您可以删除最后一个字符来代替循环内的注释:

    cl = Left(cl, Len(cl)-1))
    

    然后,在下一步中,根据需要求和或删除。

    【讨论】:

    • 你给我的最后一个语句,cl = Left(cl, Len(cl)-1) 这个代码行,会删除最后一个字符,我猜?只是一个快速的奖金问题,我想知道,如果是这样,我可以搜索单元格中的最后一个字符是否是一个字母,然后删除最后的所有字母,即使有多个:)
    • 要检查字符是否为字母,可以使用 AscW 函数。如果参数是标准拉丁字符集的字母,则返回 65 到 122。
    • @PatrickS:如果末尾有多个字母,则需要循环遍历单元格中的字符串并使用 AscW 函数来检查当前字母是字母还是数字。在这种情况下,您可能需要考虑 MIDLEFTRIGHT 函数以及 LEN(已在 MarcinSzaleniec 答案中显示)。您还需要调整 if 语句。
    • @Prextor 啊,好吧...那么听起来 MarcinSzalenec 的答案毕竟是“最简单”的方式 :)
    猜你喜欢
    • 2022-12-14
    • 2011-02-26
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    相关资源
    最近更新 更多