Murray需要一种控制数据进入单元B1的方法。如果单元格A1包含大写字母“ A”,则用户应该能够将数据输入到单元格B1中。如果单元格A1包含除大写字母“ A”以外的任何内容,则不应在单元格B1中输入任何数据,并且单元格B1应显示“ N / A”(不是错误值#N / A,而是字母“ N / A” ”)。

有两种方法可以解决此问题。一种方法是使用检查A1是否包含“ A”的宏。如果是这样,则宏将保留单元格B1中的所有内容,除非先前已将B1设置为“ N / A”。 (如果有,则清除B1。)如果A1不包含“ A”,则单元格B1中的所有内容都将替换为字符“ N / A”。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim sTemp As String

If Target.Address(False, False) = "A1" Or _       Target.Address(False, False_ = "B1" Then

'Store B1's text in variable         sTemp = Range("B1").Text

Application.EnableEvents = False         If Range("A1").Text = "A" Then             If sTemp = "N/A" Then Range("B1") = ""

Else             Range("B1") = "N/A"

End If         Application.EnableEvents = True     End If End Sub

请注意,这只是一种基于宏的方法。还有很多其他方法可以使用,这取决于选择单元格A1或B1时要发生的行为。对于此宏,应将其保存在ThisWorkbook模块中,以便在工作表中进行任何更改时都会触发。

您可以使用的另一种方法根本不涉及宏。相反,它依赖于条件格式。请按照下列步骤操作:

。选择单元格B1。

。在显示功能区的“主页”选项卡的情况下,单击“样式”组中的“条件格式”选项。 Excel将显示与条件格式相关的选项面板。

。单击管理规则。 Excel将显示“条件格式设置规则管理器”对话框。

。单击新规则。 Excel将显示“新格式设置规则”对话框。

。在对话框顶部的“选择规则类型”区域中,选择“使用公式来确定要格式化的单元格”。 (在Excel 2013和Excel 2016中,单击“新建规则”,然后选择“使用公式来确定要格式化的单元格。”)(请参见图1。)

。在“此公式为真的地方设置格式值”框中,输入以下内容:= NOT(EXACT(LEFT(A1,1),“ A”))。如果单元格包含的单元格的首字母不包含字母“ A”,则此公式将返回True。

。单击格式以显示“设置单元格格式”对话框。

。在类别列表中,选择自定义。

。在“类型”框中,输入以下内容:“ N / A”;“ N / A”;“ N / A”;“ N / A”(确保包括引号,如图所示)。

。单击“确定”关闭“设置单元格格式”对话框。您在步骤7中指定的格式现在应该出现在规则的预览区域中。

。单击确定。 “新建格式规则”对话框消失,Excel再次显示“条件格式规则管理器”对话框。对话框中列出了您刚定义的规则。

。单击确定。 Excel将条件格式应用于单元格B1。

当值是数字(正,负或零)时,在步骤9中定义的自定义格式会使Excel显示字母“ N / A”。或文字。由于将所有4个条件都设置为同一事物,因此所有这些条件都将显示“ N / A”。这种方法可以更改显示,但仍允许用户在单元格B1中输入值-除非单元格A1中的第一个字母为“ A”,否则它将无法正确显示。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本提示(13457)适用于Microsoft Excel 2007、2010、2013和2016。