繁体   English   中英

VBA Excel查找功能,用于货币格式的单元格

[英]VBA Excel find function for currency formatted cells

我完全没有VBA编码经验,并且我有一个看似简单的问题。 我想创建一个单击按钮宏,该宏将查找并选择每个包含欧元符号€的货币格式的单元格,或在特定列中总和大于0的每个货币格式的单元格。 目前此代码:

Cells.Find(What:="€", After:=ActiveCell, LookIn:=xlValues, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate

接近我要实现的目标(找到€符号),但不适用于货币格式的单元格,该单元格默认情况下会自动将欧元符号添加到总和中,并且未定义到特定列。 例如,如果在我的工作表中,仅某些货币格式的单元格带有€符号(我正在寻找),则宏给我一个运行时错误91。使用原生的excel搜索功能,相同的精确搜索参数也可以正常工作。

见所附图片,请帮助,它将对我的项目有很大帮助=)

这不起作用: https : //i.stack.imgur.com/UQqJp.jpg

这与我希望我的宏完全一样找到欧元符号。 https://i.stack.imgur.com/fM1lY.jpg

测试以下内容-

Sub test()
    Dim rng As Range

    Set rng = Cells.Find(What:="€", After:=ActiveCell, LookIn:=xlValues, _
        LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)

    If Not rng Is Nothing Then
        rng.Activate
    End If
End Sub

您的部分需求。 此例程将Select所有包含欧元符号的单元格。 它将处理通过格式显示的欧元以及单元格文本中包含的欧元

Sub test()
    Dim rng As Range, r As Range, rFound As Range

    Set rFound = Nothing
    For Each r In ActiveSheet.UsedRange
        If InStr(1, r.Text, "€") > 0 Then
            If rFound Is Nothing Then
                Set rFound = r
            Else
                Set rFound = Union(rFound, r)
            End If
        End If
    Next r

    If Not rFound Is Nothing Then rFound.Select
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM