首页 文章

VBA Excel查找货币格式化单元格的功能

提问于
浏览
1

我根本没有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

2 回答

  • 1

    部分需要 . 此例程将 Select 包含欧元符号的所有单元格 . 它将处理由 formatting 以及欧元 included in the cell text. 显示的欧元

    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
    
  • 1

    测试以下 -

    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
    

相关问题