我正在尝试从非标准日期格式的单元格中提取日期。
问题中的单元格中包含字符串“10 / 9~10 / 13”。
我知道这是因为我最初通过使用Range.Find函数找到了可疑单元格。 (我试过.Value,.Value2和.Text这里无济于事。)
text = .UsedRange.Find("~~").Value
如果我使用debug.Print文本,那么
debug.Print text
10/9_10/13
有趣的是〜消失了。但是,debug.Print也揭示了这种奇怪的行为。
d = InStr(1, "10/9_10/13", "_", vbTextCompare)
5
d = InStr(1, text, "_", vbTextCompare)
0
我想也许文字不是字符串?
debug.Print TypeName(text)
String
如果你能解释为什么VBA表现出这种非常有用的明显不一致的行为。
答案 0 :(得分:0)
我将您的数据放在 D1 中,然后我跑了:
Sub dural()
Dim dCell As String, txet As String
dCell = Range("D1").Value
Debug.Print dCell
txet = ActiveSheet.UsedRange.Find("~~").Value
Debug.Print txet
End Sub
(我使用txet而不是文本来避免与同名属性混淆)并得到:
你所拥有的不是 tilda 而是其他一些看起来像 tilda 的unicode角色吗?
答案 1 :(得分:0)