簡體   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