我正在尝试从不采用标准日期格式的单元格中提取日期。
该细胞的字符串“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表现出这种明显不一致的行为,那将是非常有用的。
发布于 2017-11-07 16:50:41
正如您已经看到的AscW返回-162,您可以使用该值在vba中查找unicode char。

发布于 2017-11-07 16:38:09
我将您的数据放入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而不是文本来避免与同名属性混淆)并得到:

有没有可能你拥有的不是蒂尔达,而是其他一些看上去像蒂尔达的unicode字符
https://stackoverflow.com/questions/47162736
复制相似问题