2017-10-05 5 views
1

코드에서 특정 값의 열 번호를 워크 시트에서 찾고 그 값이 거의 매일 바뀝니다. 때로는 "İ", "Ş", "#"및 기타 직원과 같은 문자가 포함됩니다.다른 문자로 vba 찾기 속성을 확인하십시오.

문제는 find 속성이 해당 문자로 작동하지 않으며 그 셀 열 번호를 가져올 수 없다는 것입니다.

다음은 위치를 찾으려는 코드입니다.

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_Value가 올바르게 표시되지 않습니다. 그것은 S와 나는 같은 다른 문자와 함께해야하지만 S로 와서 I.

편집 :

이 같은 Check_Value 변화와

;

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 

여전히 값을 가져올 수 없습니다.

답변

1

대신

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

사용

Dim xa As long 
xa = xr.Column 
xCheck_Column = xa + 1 

또는

Dim xa 
xa = Split(xr.Address, "$") 
xCheck_Column = xa(2) + 1 

편집 :

아래 코드를 사용하면 원하는 결과를 얻을 수 있습니다. 이미지를 참조하십시오.

enter image description here

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 

enter image description here

+0

정말 감사합니다. 하지만 여기에서 가장 중요한 문제는 재산이 아주 잘 작동하지 않는다는 것입니다. 디버그 모드에서는 xr = nothing이라는 것을 알 수 있습니다. 그러나 그것이 그것이 가치를 가져야한다는 것을 안다. – Bildircin13

+0

@ Bildircin13 - 시트 또는 코드에서 'Check_Value' 값을 어떻게 할당합니까? – Mrig

+0

지금 코드를 작성하려고하기 때문에 값이 코드에 있습니다. 그것은 SOY로 쓰여 "CHRW 및 (304) 및"S SOYİS ".이 같이 와서 소리 그래서" – Bildircin13