Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
excel vba查找具有其他字符的属性_Excel_Vba_Find - Fatal编程技术网

excel vba查找具有其他字符的属性

excel vba查找具有其他字符的属性,excel,vba,find,Excel,Vba,Find,在代码中,我想在工作表中找到一个特定值的列号,该值几乎每天都会改变。有时它会包含诸如“İ”、“Ş”、“#”等字符和其他职员 问题是,“查找”属性不能处理这些字母,而且我无法获取单元格列号 以下是我试图找到位置的代码 For x = 2 To LastRowB Set xr = Worksheets("Check").Range("T" & x & ":BQ" & x & "").Find(Check_Value) If Not (xr Is Nothing)

在代码中,我想在工作表中找到一个特定值的列号,该值几乎每天都会改变。有时它会包含诸如“İ”、“Ş”、“#”等字符和其他职员

问题是,“查找”属性不能处理这些字母,而且我无法获取单元格列号

以下是我试图找到位置的代码

For x = 2 To LastRowB

Set xr = Worksheets("Check").Range("T" & x & ":BQ" & x & "").Find(Check_Value)

If Not (xr Is Nothing) Then

Dim xa As String
xa = Split(xr.Address, "$")

xCheck_Column = xa(1) + 1
xTotal_First = Worksheets("Check").Cells(x, xCheck_Column).Value

e = e + xTotal_First

End If

Next x
在调试模式下,我看到Check_值出现错误。它应该和其他角色一起出现,比如Ş和İ,但它是S和I

编辑:

像这样更改Check_值

    Dim Check_Value As String
    Dim xr As Range
        Check_Value = Worksheets("Check_Test").Range("P5").Value

Set xr = Worksheets("Check").Range(""T" & x & ":BQ" & x & "").Find(Check_Value)
Dim xa As Long
xa = xr.Column
我仍然无法获取列值。

而不是

Dim xa As String
xa = Split(xr.Address, "$")
xCheck_Column = xa(1) + 1
使用

编辑:

当我使用下面的代码时,我得到了期望的结果。参见图

Sub t()
    Dim rng As Range
    Dim str As String
    str = "SOY" & ChrW(304) & "S"
    Set rng = Range("A1:O10").Find(str)
    MsgBox "Column no. " & rng.Column
End Sub


编辑2:我可以从工作表中获取
str
的值,然后查找。见下文

Sub test()
    Dim rng As Range
    Dim str As String
    str = Range("A1").Value
    Set rng = Range("D1:O10").Find(str)
    MsgBox "Column no. " & rng.Column
End Sub

非常感谢。但这里的主要问题是,find property并不能很好地工作。在调试模式下,我可以看到它是xr=nothing。但我知道它应该带来价值。@Bildircin13-你是如何从工作表或代码中为
检查值
赋值的?现在,因为我正在尝试编写代码,所以值在代码中。它写为SOY“&ChrW(304)和“s”。所以它看起来像“SOYİs”,但在查找值时,它是“SOYIS”,所以它在工作表中找不到SOYIS值。但即使我从工作表中得到“Check_value”的值,也没关系。它是“SOYIS”“我不知道为什么..我打开了一个新模块进行测试,但我不知道为什么,用你的代码,我仍然得到str=“SOYIS”,而不是“SOYİS”,但它给了我正确的答案。。。很有趣@磁共振成像
Sub t()
    Dim rng As Range
    Dim str As String
    str = "SOY" & ChrW(304) & "S"
    Set rng = Range("A1:O10").Find(str)
    MsgBox "Column no. " & rng.Column
End Sub
Sub test()
    Dim rng As Range
    Dim str As String
    str = Range("A1").Value
    Set rng = Range("D1:O10").Find(str)
    MsgBox "Column no. " & rng.Column
End Sub