控制单元格中的数据输入(Microsoft Excel)
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。