检查单元格是否为空,如果为空,则填充单元格,然后将结果与旧值进行比较&;如果不同,请使用VBA高亮显示?
我试图让这个函数在Z列中的一系列值之间循环,从第6行到存储在OS_PLs变量中的数字。我希望它检查单元格中是否已经有发票号……如果有,则转到下一个单元格……但是如果没有,则将此匹配公式放入,以查看它是否可以在平衡表上找到相应的发票号。然后,如果它在单元格中放置了原始值以外的内容,则使用黑色哈希标记以橙色突出显示该单元格 为了实现这一点,我尝试首先将初始值存储在变量“valuestore”中 接下来,我尝试确保清除上次运行此函数时仅包含“”的所有单元格(稍后在宏中,它复制范围并粘贴为值以去除公式),以便“isempty”检查正常工作 接下来,我让它检查单元格是否为空,如果为空,它应该只移动到下一个I,但如果为空,那么它应该输入匹配公式 最后,假设上一步中的单元格为空,则应将新值与旧值进行比较,如果不同,则应突出显示该单元格 无论出于何种原因,这似乎是在清除每个单元格,它似乎总是不显示valuestore变量的值,并且它在每个单元格中输入公式。它似乎唯一正确的做法(某种程度上)是突出显示以值结尾的单元格,而不是突出显示保留“”的单元格。但是,它也会突出显示最初包含发票号的单元格,这些发票号已被删除并已被覆盖 有人有什么想法吗 谢谢检查单元格是否为空,如果为空,则填充单元格,然后将结果与旧值进行比较&;如果不同,请使用VBA高亮显示?,vba,excel,formatting,Vba,Excel,Formatting,我试图让这个函数在Z列中的一系列值之间循环,从第6行到存储在OS_PLs变量中的数字。我希望它检查单元格中是否已经有发票号……如果有,则转到下一个单元格……但是如果没有,则将此匹配公式放入,以查看它是否可以在平衡表上找到相应的发票号。然后,如果它在单元格中放置了原始值以外的内容,则使用黑色哈希标记以橙色突出显示该单元格 为了实现这一点,我尝试首先将初始值存储在变量“valuestore”中 接下来,我尝试确保清除上次运行此函数时仅包含“”的所有单元格(稍后在宏中,它复制范围并粘贴为值以去除公式)
For i = 6 To OS_PLs
Dim valuestore As String
Range("Z" & i).Value = valuestore
MsgBox (valuestore)
If Range("Z" & i).Value = """" Then
Range("Z" & i).Clear
End If
If IsEmpty(Range("Z" & i)) Then
Range("Z" & i).Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(IF(LEFT(INDEX('AR balance.xlsx'!AR_Invoice_Nums,MATCH(RC[-20],'AR balance.xlsx'!AR_PL_Nums,0)),5)=""CMSHK"","""",INDEX('AR balance.xlsx'!AR_Invoice_Nums,MATCH(RC[-20],'AR balance.xlsx'!AR_PL_Nums,0))),"""")"
If Not (Range("Z" & i)) = """" Then
If Not (Range("Z" & i)) = valuestore Then
With Selection.Interior
.Pattern = xlUp
.PatternColorIndex = xlAutomatic
.Color = 49407
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
End If
Else
End If
Next i
对于空白单元格
范围(“Z”&i)。Value=“”
将始终返回FALSE
Range(“Z”&i).Value=”“
将返回TRUE
Range(“Z”&i).Value=vbNullString
可能是一个更具体的测试。变量valuestore的值是多少。Range(“Z”&i).Value=valuestore不设置变量的值,它将valuestore值放入范围中。捕捉得好。谢谢……大概400行代码之后,我的大脑被炸了,我倒着输入!