首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带~+的VBA InStr

带~+的VBA InStr
EN

Stack Overflow用户
提问于 2017-11-07 16:21:59
回答 2查看 373关注 0票数 0

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

该细胞的字符串“10/9~10/13”。

我知道这一点,因为我最初通过使用Range.Find函数查找可疑单元格。(我在这里尝试了.Value、.Value2和.Text,但没有结果)。

代码语言:javascript
复制
        text = .UsedRange.Find("~~").Value

如果我使用debug.Print文本

代码语言:javascript
复制
debug.Print text
10/9_10/13

有趣的是,~~消失了。然而,debug.Print也揭示了这种奇怪的行为。

代码语言:javascript
复制
d = InStr(1, "10/9_10/13", "_", vbTextCompare)
5
d = InStr(1, text, "_", vbTextCompare)
0

我想也许文字不是字符串?

代码语言:javascript
复制
debug.Print TypeName(text)
String

如果你能解释为什么VBA表现出这种明显不一致的行为,那将是非常有用的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-07 16:50:41

正如您已经看到的AscW返回-162,您可以使用该值在vba中查找unicode char。

票数 0
EN

Stack Overflow用户

发布于 2017-11-07 16:38:09

我将您的数据放入D1中,然后运行:

代码语言:javascript
复制
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字符

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47162736

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档