我根本没有VBA编码的经验,我有一个看似简单的问题。我想创建一个单击按钮宏,它将查找并选择每个货币格式化单元格,其中包括欧元符号€或特定列中总和大于0的每个货币格式化单元格。目前这段代码:
Cells.Find(What:="€", After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
接近我想要达到的目标(找到€符号),但它不适用于货币格式化的单元格,默认情况下会自动将欧元符号添加到总和中,并且不会定义到特定列。 例如,如果在我的工作表中只有一些货币格式化的单元格有一个€符号(我正在寻找),那么宏给我一个运行时错误91 ..使用原生excel搜索功能,相同的精确搜索参数工作正常。 / p>
见附图 请帮助它对我的项目帮助很多=)
这不起作用: https://i.stack.imgur.com/UQqJp.jpg
这就像我希望我的宏一样找到欧元符号。 https://i.stack.imgur.com/fM1lY.jpg
答案 0 :(得分: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
答案 1 :(得分:1)
您的部分需求。此例程将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