gpt4 book ai didi

vba - Excel VBA - 突出显示正数和负数对

转载 作者:行者123 更新时间:2023-12-04 21:15:04 36 4
gpt4 key购买 nike

假设我有一列数字,例如:

1; -1; 5; 4; 3; -3; -3; 3; -4; 7.



我想制作一个可以突出显示所有正数和负数对(例如1和-1)的宏,同时还考虑到可以出现多对(例如3和-3都出现两次)的事实。此外,我希望能够输入我想要使用的范围。

对于上述示例,应突出显示除 5 和 7 之外的所有数字。

这是我到目前为止想出的
Sub HighlightExercise()

Set myRange = Application.InputBox(prompt:="Sample", Type:=8)

myRange.Interior.ColorIndex = 2

For Each cell In myRange

If cell.Interior.ColorIndex = 30 Then Next

Set CValue = Cell.Value

myRange.Select

Set CFind = Selection.Find(What:=CValue.Value * -1, After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False)

If CFind.Value = Null Then Next

If CFind.Interior.ColorIndex = 30 Then Next

CFind.Interior.ColorIndex = 30

CValue.Interior.ColorIndex = 30

Next

End Sub

在上面的示例中,它显示“编译错误,下一步没有 For”,但存在 For 条件。我尝试了“下一个单元格”和“下一个迭代”,但仍然没有。我没有得到什么?

最佳答案

代替:

If cell.Interior.ColorIndex = 30 Then Next



您需要测试相反的情况并允许它运行代码(如果为真):
If cell.Interior.ColorIndex <> 30 Then

你也使用 .Value在许多不允许的地方:

Set CValue = Cell.Value



应该:
Set CValue = Cell

但实际上不需要 Cell已经是一个范围。

不要忘记声明你的变量:
Dim myRange As Range
Dim cell As Range
Dim cfind As Range

同样在 Find 中,我们要从当前单元格向下搜索,因此请更改:

After:=ActiveCell




After:=cell

避免使用 .Select只需对范围做你想做的事:
Set cfind = myRange.Find...

尝试:
Sub HighlightExercise()
Dim myRange As Range
Dim cell As Range
Dim cfind As Range
Set myRange = Application.InputBox(prompt:="Sample", Type:=8)

myRange.Interior.ColorIndex = 2

For Each cell In myRange

If cell.Interior.ColorIndex <> 30 Then

Set cfind = myRange.Find(What:=cell.Value * -1, After:=cell, LookIn:= _
xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False)
If Not cfind Is Nothing Then
If cfind.Interior.ColorIndex <> 30 Then
cfind.Interior.ColorIndex = 30
cell.Interior.ColorIndex = 30
End If
End If
End If
Next

enter image description here

关于vba - Excel VBA - 突出显示正数和负数对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47266655/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com