在初步讨论结束时,有关可能原因的线索.
一个简单的VBA宏代码行,如:
FontCol = Cells(K, AmntCol).Font.ColorIndex报告,光标悬停在"FontCol“上方,值"1”-这是黑色的索引值。
然而,当这个值被“发布”到相关的(活动的) Excel电子表格时:
Cells(RowRef, ColRef) = FontCol上面提到的单元显示了-5而不是1 (作为问题的一个例子)。
"1“是你希望看到的黑色,我甚至不知道"-5”与什么有关,更不用说为什么它也不是在VBA代码中起作用的东西。-如果我将" -5“写入某些代码逻辑中,就不会得到有用的结果,从而确认实际的基础值是1而不是-5。
似乎(登陆)单元格的格式化或将FontCol的“维度作为语句”更改为“整型”、“字符串”或“变体”都不会改变发布到单元格的内容。
我还没有找到任何关于这个问题的信息。最接近的是长数字在索引空间中环绕较短的数字,以及一个剩余的驱动things...whatever,这意味着。
我真的会解决这个问题,因为我打算使用ColorIndex值作为一种安全编辑单元格值的方法。
任何智慧都将不胜感激。
补充以上-在回应。
将变量/s的Dim从“整型”改为“长”没有区别。
在准备提供下面的示例代码时,我已经确定了问题的一部分--它似乎与速度有关。但首先是密码。
‘子FontMacroIssue()
Dim I As Long
Dim FontCol As Long
For I = 36 To 51
FontCol = Cells(I, 10).Font.ColorIndex
If FontCol = 3 Then
Cells(I, 18) = "Red"
Cells(I, 19) = FontCol
Else
Cells(I, 18) = "Not Red"
Cells(I, 19) = FontCol
End If
Next I
End Sub
''''上面的内容是在Windows1064位计算机上运行的(双引导到Linux)...this不应该相关。
如果上述操作按原样运行,则输出大部分/全部为“非红色”,FontCol值的字符串打印为,
1 -5 -5 -5 -5 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7 -7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-7-
所谓慢速,我指的是在调试模式下运行宏,在"Next I“或类似位置设置一个断点,然后每秒按两次F5按钮(例如)。全速情况下的输出大部分/全部为“非红色”,但当评估字体的速度减慢时,正确的报告是“红色”和“非红色”。
所以,我现在的问题更多,“这种行为正常吗”,“我如何才能最好地放慢速度以获得正确的结果”或“什么代码更有效”?编辑..。
我倾向于同意有趣的托马斯,因为即使是两个周期/秒提出的问题。我没有答案,但有一些可能有帮助的评论。1.我的硬盘是一个2 TB的SSD 2。有关的电子表格有超过46000行。3.巧合的是:黑体字为8-7=1,黑体字为-7,红色字体为8-5=3,红色字体为3和-5。谢谢
发布于 2020-05-30 14:12:13
颜色指定为当前调色板中的索引值,或指定为下列XlColorIndex常量之一: xlColorIndexAutomatic或xlColorIndexNone。
常量将分别显示为整数值-4105 en -4142。
https://stackoverflow.com/questions/62102615
复制相似问题