Excel 输入数字时单元格值变为 TRUE
Excel Cell Value Changing to TRUE when Number Entered
我有一个 sheet,其中包含数百个用户表单和宏 运行。当我在用户窗体的文本框中输入数字或直接在有问题的单元格中输入数字时,它会用一个值填充一个单元格,但是在我单击文本框外后,该单元格会自动变为 TRUE。如果我用预期值覆盖 TRUE 值,单元格将更改为数字,但是引用此单元格的方程式无法识别此值。我只在几个单元格上有问题,其余的似乎不受此影响,并且都有相同的引用、宏等引用它们。
关于可能导致此问题的原因或解决此问题的方法的任何建议?我已经尝试创建新的 sheets,从没有这个问题的区域复制等等,但我一直遇到这个问题。
以下是适用于受影响区域的代码片段:
'Element Deficiency Matrix (1a to 3k)
With Worksheets("Abutment Data")
For Each row In .Range("A2:J4").Rows
For Each cell In row.Cells
Set check = Me.MultiPage1.Pages(0).Controls.Add("Forms.Textbox.1")
With check
.ControlSource = "'" & cell.Parent.Name & "'!" & cell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
.Left = Left
.Font.Size = 6
.Top = Top
.Width = 20
.Height = 12
.BackColor = &HF6F6F6
.BackStyle = fmBackStyleOpaque
.BorderStyle = fmBorderStyleSingle
.SpecialEffect = fmSpecialEffectFlat
Left = Left + 24
End With
Next
Left = 28
Top = Top + 24
Width = Width
Next
End With
谢谢。
是否有任何影响单元格的格式为 "Custom"? (TRUE/FALSE) 或者,宏引用的任何单元格是否改变了单元格?
尝试根据我的上述假设重新创建问题的可能版本,我使用自定义格式将 7 输入 A1 单元格 True/False:它显示 "True"
制作 A2 =A1
它继承了 True/False 自定义格式。当我尝试在某些公式中引用它们中的任何一个时,它似乎优先考虑单元格的 True/False 性质而不是 True/False 状态背后的数据。例如。将 C1 设置为 =A1+4
显示 "True" 并将 C1 的格式更改为自定义。作为自定义格式如何仅干扰某些公式的示例:=Code(A1)
将正确显示 55(7 的 unicode 参考)并保持其格式。
宏也可能导致从另一个杂散单元格继承这种格式,格式化为自定义,在他们的步骤中引用。
假设您从未受影响的区域复制(假设您用复制的 material 覆盖了格式),我会查看宏引用的工作表区域。如果它在宏本身内,我希望出现故障的宏会创建更多有问题的单元格。
您也可以尝试 select 调整每一列并将它们设置为预期的格式以覆盖杂散单元格。对于数据右侧的列,阻止 select 并删除它们或将其格式设置为常规。这里的概念是获得每列格式的一致性并清理可能的宏引用 space(请记住,我没有任何关于您的 Workspace/book 的参考)。
我最终找到了问题的解决方案。它与一个完全不相关的用户表单有关,该用户表单没有任何对我正在处理的 sheet 的引用。它有一堆复选框对象,当某些单元格被填充时,这些对象必须被触发为 TRUE。删除该用户表单并从头开始重新创建后,问题似乎消失了。
我有一个 sheet,其中包含数百个用户表单和宏 运行。当我在用户窗体的文本框中输入数字或直接在有问题的单元格中输入数字时,它会用一个值填充一个单元格,但是在我单击文本框外后,该单元格会自动变为 TRUE。如果我用预期值覆盖 TRUE 值,单元格将更改为数字,但是引用此单元格的方程式无法识别此值。我只在几个单元格上有问题,其余的似乎不受此影响,并且都有相同的引用、宏等引用它们。
关于可能导致此问题的原因或解决此问题的方法的任何建议?我已经尝试创建新的 sheets,从没有这个问题的区域复制等等,但我一直遇到这个问题。
以下是适用于受影响区域的代码片段:
'Element Deficiency Matrix (1a to 3k)
With Worksheets("Abutment Data")
For Each row In .Range("A2:J4").Rows
For Each cell In row.Cells
Set check = Me.MultiPage1.Pages(0).Controls.Add("Forms.Textbox.1")
With check
.ControlSource = "'" & cell.Parent.Name & "'!" & cell.Address(RowAbsolute:=False, ColumnAbsolute:=False)
.Left = Left
.Font.Size = 6
.Top = Top
.Width = 20
.Height = 12
.BackColor = &HF6F6F6
.BackStyle = fmBackStyleOpaque
.BorderStyle = fmBorderStyleSingle
.SpecialEffect = fmSpecialEffectFlat
Left = Left + 24
End With
Next
Left = 28
Top = Top + 24
Width = Width
Next
End With
谢谢。
是否有任何影响单元格的格式为 "Custom"? (TRUE/FALSE) 或者,宏引用的任何单元格是否改变了单元格?
尝试根据我的上述假设重新创建问题的可能版本,我使用自定义格式将 7 输入 A1 单元格 True/False:它显示 "True"
制作 A2 =A1
它继承了 True/False 自定义格式。当我尝试在某些公式中引用它们中的任何一个时,它似乎优先考虑单元格的 True/False 性质而不是 True/False 状态背后的数据。例如。将 C1 设置为 =A1+4
显示 "True" 并将 C1 的格式更改为自定义。作为自定义格式如何仅干扰某些公式的示例:=Code(A1)
将正确显示 55(7 的 unicode 参考)并保持其格式。
宏也可能导致从另一个杂散单元格继承这种格式,格式化为自定义,在他们的步骤中引用。
假设您从未受影响的区域复制(假设您用复制的 material 覆盖了格式),我会查看宏引用的工作表区域。如果它在宏本身内,我希望出现故障的宏会创建更多有问题的单元格。
您也可以尝试 select 调整每一列并将它们设置为预期的格式以覆盖杂散单元格。对于数据右侧的列,阻止 select 并删除它们或将其格式设置为常规。这里的概念是获得每列格式的一致性并清理可能的宏引用 space(请记住,我没有任何关于您的 Workspace/book 的参考)。
我最终找到了问题的解决方案。它与一个完全不相关的用户表单有关,该用户表单没有任何对我正在处理的 sheet 的引用。它有一堆复选框对象,当某些单元格被填充时,这些对象必须被触发为 TRUE。删除该用户表单并从头开始重新创建后,问题似乎消失了。