繁体   English   中英

如何检查 Excel 单元中 Σ 字符的值? - VBA

[英]How to check the value of Σ character in an Excel Cell? - VBA

我在 excel 中确实有一个包含 Σh 的单元格。 不知道如何在 vba 中检查它。 我尝试过.Value.Text ,但检查永远不会正确。

在此处输入图像描述

If (tRange.Value = (ChrW(931) + "h")) Then
    Exit Sub
End if

在测试(调试)时,我得到ActiveCell.Value = Sh这个结果

在此处输入图像描述

(a)您必须使用.Value来获取单元格的内容。
(b)在 VBA 中,您应该使用与字符 ( & ) 连接字符串。 加号也有效,但前提是所有操作数都是字符串。
(c) ChrW(931) & "h" (或ChrW(931) + "h" )应该可以工作。 即使 VBA 环境无法显示字符,VBA 也能够处理字符。

在我看来,要么 Sigma 字符由不同的字符组成,要么你的单元格包含不可见的字符,如空格、换行符、制表符......

您可以使用以下代码转储单元格的内容,以了解您的If语句失败的原因:

Sub DumpString(s As String)
    Dim i As Long
    For i = 1 To Len(s)
        Dim c As String
        c = Mid(s, i, 1)
        Debug.Print i, AscW(c), c
    Next
End Sub

当您在立即 window中输入以下命令时,您将看到 output 如下所示:

 DumpString activecell.Value
   1             931          S
   2             104          h

这应该检查单元格值是否包含子字符串“Σh”

If tRange.Value Like "*" & ChrW(931) & "h*" Then
    Exit Sub
End If

对于某些人来说,另一种可能更简单的方法

If InStr(1, tRange.Value, ChrW(931) & "h") <> 0 Then
    Exit Sub
End If

您必须使用 & 符号来连接这两个字符:

If (tRange.Value = ChrW(931) & "h") Then
    Exit Sub
End if

暂无
暂无

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

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