输入数字时Excel单元格值更改为TRUE
我有一张有数百个用户表单和宏运行的工作表。当我在userform中的文本框中输入一个数字或直接在有问题的单元格中输入一个数字时,它会用一个值填充一个单元格,但是当我从文本框中单击后,该单元格会自动变为TRUE。如果使用预期值覆盖真值,单元格将更改为数字,但是引用此单元格的方程式无法识别此值。我只有几个单元格有这个问题,其他单元格似乎不受此影响,所有单元格都有相同的引用、宏等引用它们 有什么建议可以引起这个问题,或者解决这个问题的方法吗?我尝试过创建新的图纸,从没有这个问题的区域复制,等等。但我一直遇到这个问题 以下是适用于受影响区域的代码片段:输入数字时Excel单元格值更改为TRUE,excel,vba,userform,Excel,Vba,Userform,我有一张有数百个用户表单和宏运行的工作表。当我在userform中的文本框中输入一个数字或直接在有问题的单元格中输入一个数字时,它会用一个值填充一个单元格,但是当我从文本框中单击后,该单元格会自动变为TRUE。如果使用预期值覆盖真值,单元格将更改为数字,但是引用此单元格的方程式无法识别此值。我只有几个单元格有这个问题,其他单元格似乎不受此影响,所有单元格都有相同的引用、宏等引用它们 有什么建议可以引起这个问题,或者解决这个问题的方法吗?我尝试过创建新的图纸,从没有这个问题的区域复制,等等。但我一
'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
谢谢。是否有格式为“自定义”的影响单元格?(真/假)或者,宏引用的任何单元格是否会改变这些单元格 试图根据我的上述假设重新创建问题的可能版本,我使用自定义格式True/False向A1单元格输入7:它显示“True” 使A2
=A1
继承了正确/错误的自定义格式。当我尝试在某些公式中引用它们时,它似乎优先考虑单元格的真/假属性,而不是真/假状态背后的数据。例如,将C1设置为=A1+4
将显示“True”,并将C1的格式更改为自定义。例如,自定义格式仅干扰某些公式:=code(A1)
将正确显示55(7的unicode参考)并保持其格式
宏也可能导致此格式继承来自另一个在其步骤中引用的、格式为自定义的游离单元格
如果您是从未受影响的区域复制的(假设您使用复制的材质重写了格式),我将查看宏引用的工作表区域。如果宏本身存在问题,我希望出现故障的宏会创建更多有问题的单元格
您还可以尝试选择每一列并将其设置为其预期格式,以覆盖一个游离的单元格。对于数据右侧的列,请阻止选择它们,然后删除它们或将其格式设置为“常规”。这里的概念是获得每列格式的一致性,并清理可能的宏引用空间(请记住,我没有任何关于您的工作区/书籍外观的参考) 我最终找到了解决这个问题的办法。它必须处理一个完全不相关的用户表单,它没有任何对我正在处理的工作表的引用。它有一堆复选框对象,当某些单元格被填充时,这些对象必须被触发为TRUE。删除该用户表单并从头开始重新创建后,问题似乎消失了。我猜您的
ControlSource
引用的单元格中有一个公式,和/或不同单元格中有一个公式正在引用和更改同一单元格,和/或您在工作表\u Change
事件中发生了一些事情,该事件在文本框设置值后正在更改该值。感谢您的建议!我检查了工作表上的零钱,什么也没找到。受影响的单元格中没有公式,也没有先例公式。我追踪了所有的相关单元格,也没有发现影响它的公式。嗨,詹姆斯,所有单元格的格式都是通用的。我检查了一下,确认了一下。为了排除任何公式是罪魁祸首,我禁用了宏并尝试在单元格中键入数字,但它们没有变为TRUE。这让我相信这与宏本身有关。但是,同一宏在其他地方使用了100次,而这些地区不存在问题。谢谢你的建议!