这可能是一个非常简单的修复,所以请坦白我的“新手”。我有一个非常独特的表单,用户输入一个 PIN#,VBA 代码选择该 ID 并使用本地数据库根据该 ID 更改某些单元格。这些单元格要么填充有来自数据库的数据,要么相应地格式化,要么两者都基于该 PIN#。
我有一段代码在 DB 中查找引脚,并找到一个 N 或 Y 值,然后相应地格式化一个单元格。问题是我编写了代码,因此如果数据库中的值读取“N”,则更改单元格值、颜色并锁定单元格。如果用户在关联的数据库中键入具有“Y”值的 PIN#,则单元格保持不变......然后说用户在 DB 中键入具有相关“N”值的 PIN#,这些值改变。一切都好,对吧??不!问题是,如果用户返回并在关联的 DB 中键入具有相关“Y”值的不同 PIN#,则单元格不会恢复到原来的状态,而是保持灰色并锁定。必须有一个关于连续发生或其他事情的声明......我错过了什么?
Sub setChromBox()
If GetLDBValue(GetHasChrom(Range("START_PIN").value)) = "Y" Then
Exit Sub
End If
If GetLDBValue(GetHasChrom(Range("START_PIN").value)) = "N" Then
Range("START_GCTR").value = "NO"
Range("START_GCTR").Interior.ColorIndex = TRColor.Color_Null
Range("START_GCTR").Locked = True
Else
Range("START_MC_LOOKUP").ClearContents
注意:GetLDBValue 只是一个简单的 ping 本地 DB 的函数,GetHasChrom 是 ping DB 中的表并返回“Y”或“N”值的查询。我是否需要添加另一个 IF 语句来说明如果它变回的内容?我离这儿很远吗?代码是否需要在其他地方更改?任何帮助表示赞赏