繁体   English   中英

VBA InStr与〜

[英]VBA InStr With ~

我正在尝试从非标准日期格式的单元格中提取日期。

讨论中的单元格中包含字符串“ 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表现出这种明显不一致的行为,那将非常有用。

我将您的数据放入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而不是文本来避免与同名的Property混淆),并得到:

在此处输入图片说明

您所拥有的可能不是tilda而是其他看起来像tilda的 unicode字符吗?

如您所见,AscW返回-162,您可以使用该值在vba中查找unicode char

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM