确定是否输入了带有前导单引号的字符串

时间:2018-01-24 13:32:39

标签: excel-vba vba excel

这个问题出现在我试图回答this question

在空白工作簿中,将A1:A2格式化为文本。在A1类型123和A2类型'123中。两者都导致字符串"123"为单元格值:

enter image description here

但是 - 公式栏会在选择'123时显示文字A2但仅在选择123时显示A1,所以Excel保留有关字符串输入方式的信息。可以从VBA访问此信息吗?

快速测试,显示的工作原因:

Sub test()
    Dim R As Range, S As Range
    Set R = Range("A1")
    Set S = Range("A2")
    Debug.Print R.Value = S.Value
    Debug.Print R.Value2 = S.Value2
    Debug.Print R.Text = S.Text
    Debug.Print R.Formula = S.Formula
    Debug.Print R.FormulaLocal = S.FormulaLocal
    Debug.Print R.FormulaR1C1 = S.FormulaR1C1
    Debug.Print R.FormulaR1C1Local = S.FormulaR1C1Local
End Sub 

这只会重复打印True。我想不出任何其他相关的范围属性。我没有看到任何应用程序或工作表级别对象,允许访问公式栏中显示的文本。有什么想法吗?

2 个答案:

答案 0 :(得分:5)

您可以使用PrefixCharacter的{​​{1}}属性来访问撇号。

Range

答案 1 :(得分:1)

考虑:

Sub SingleQuoteTest()
    MsgBox ActiveCell.PrefixCharacter = "'"
End Sub

enter image description here