尝试代码:
n = Worksheets("Sheet1").Range("A1").Characters.Count
Worksheets("Sheet1").Range("A1") _
.Characters(n, 1).Font.Superscript = True
来自https://docs.microsoft.com/en-us/office/vba/api/excel.font.superscript
我注意到它在A1
中以数字值失败。
因此,经过一些研究,我发现它适用于字符串,并且如果我们在A1中完全写入数字值,它将失败:
Sub TestMe()
Dim a As Variant
Range("A1") = "2"
a = Array(Range("A1").Characters)
Debug.Print a(0).Count
End Sub
显然是因为无法获取Characters类的Count属性而导致的错误,如本地窗口中所示:
当然,如果A1中有一个值不能解析为数字,那么一切都可以:
Sub TestMe()
Dim a As Variant
Range("A1") = "a34"
a = Array(Range("A1").Characters)
Debug.Print a(0).Count
End Sub
产生这个:
问题:是否有一些与此相关的文档来解释此错误的原因,或者这是隐藏的“功能”,还是某种内部Excel优化,将数字值解析为数字?还是文档中的“字符不是集合”的注释就是这个意思?
答案 0 :(得分:0)
您的第一个示例使IsNumeric()
返回true,因此将其视为Characters属性所需的数字而不是文本。
Cells(1, 1) = "123.4"
Debug.Print IsNumeric(Cells(1, 1)) ' returns true
Cells(1, 1) = "123a"
Debug.Print IsNumeric(Cells(1, 1)) ' returns false