Hỗ trợ câu lệnh so sánh O2 và R2

Chia sẻ bởi:hands
★★★★★
Quảng cáo

Chào anh chị em có vấn đề này nhờ anh chị hỗ trợ giúp em.
Cột O2 của em có giá trị là: 19936770-
Cột R2 của em có giá trị là: 19936770-
Em đã thử hàm ISNUMBER cả O2 lẫn R2 thì là FALSE, tức là không phải kiểu số.
960
Vấn đề của em là so sánh
em thử =O2=R2 thì nó phải trả về TRUE mới đúng, nhưng nó lại là FALSE. Em không tìm ra lý do, nguyên nhân của vấn đề này.

Vấn đề chính em cần hỗ trợ là 1 câu lệnh VBA.
Em viết một câu lệnh VBA
Kiểu 1
If Right(Sheet2.Range("R2").Value, 20) = Right(Sheet2.Range("O2").Value, 20) Then
Kiểu 2
If Sheet2.Range("R2").Value = Sheet2.Range("O2").Value Then
Kiểu 3
If ABS(Sheet2.Range("R2").Value) = ABS(Sheet2.Range("O2").Value Then
…………………..
Em thử nhiều cách viết nhưng do lỗi ở trên như em đã nói, nên viết VBA kiểu gì nó cũng lỗi.
Nhờ anh chị hỗ trợ tìm nguyên nhân lỗi này giúp em, và cho em xin một câu lệnh đúng cho trường hợp này ạ.
Em cảm ơn anh chị nhiều

Vấn đề là O2 có mấy dấu phẩy.

If Replace(Sheet2.Range("R2").Value, ",", "") = Replace(Sheet2.Range("O2").Value, ",", "") Then

Một cách làm khác ạ:

Option Explicit
Public Function Number(ByVal sInputString As String) As Double
    Dim i As Integer
    Dim lFirstNumberPos As Long
    For i = 1 To Len(sInputString)
        If IsNumeric(Mid(sInputString, i, 1)) Then
            lFirstNumberPos = i
            Exit For
        End If
    Next i
    Number = Mid$(sInputString, lFirstNumberPos)
End Function

Sub test()
    Dim sheet As Worksheet
    Set sheet = ThisWorkbook.Worksheets("Data")
    MsgBox Number(sheet.Range("O2").Value) = Number(sheet.Range("O2").Value)
End Sub

www.giaiphapexcel.com/diendan/threads/h%E1%BB%97-tr%E1%BB%A3-c%C3%A2u-l%E1%BB%87nh-so-s%C3%A1nh-o2-v%C3%A0-r2.163589/

Chịu thua cách làm ăn của thớt luôn.
Code test dữ liệu Sheet2. Mà sheet này thì trống trơn.
Sheet Data, twusc Sheet3 mới chứa dữ liệu.

@Thớt: muốn học viết VBA thì tối thiểu cũng phải học cách dùng cửa sổ Immediate.
Nếu dùng thì đã thấy chúng đâu có giống nhau

962

À xin lỗi anh, lỗi của em, do file thực tế của em là file khác, em copy lại file này cho gọn (file này là file giả định), để hỏi vấn đề thôi. File thiệt của em là Sheet2 đó anh.
Nhưng qua đây mới thấy sự tuyệt vời của GPE, các anh chị quá nhạy, dù em bị nhầm. Nhưng anh chị vẫn cho ra kết quả đúng, chính xác. Tuyệt vời là chỗ này.

@Thớt: muốn học viết VBA thì tối thiểu cũng phải học cách dùng cửa sổ Immediate.
Nếu dùng thì đã thấy chúng đâu có giống nhau

Em sẽ xem lại vấn đề này, cảm ơn anh đã nhắc nhở.

Thiết kế Tổng đãi ngộ (Total Rewards) theo khung SHRM
Khóa học SprinGO phù hợp

Thiết kế Tổng đãi ngộ (Total Rewards) theo khung SHRM

Khóa học “Thiết kế Tổng phần thưởng (Total Reward) chuẩn khung SHRM” giúp bạn nắm vững toàn bộ hệ thống đãi ngộ theo chuẩn...

Xem khóa học
★★★★★ 5 ★ 1 👤 0 ▥ 0
Quảng cáo

Bạn nên đọc

Leave a Reply

Your email address will not be published. Required fields are marked *

Quảng cáo

Cũ vẫn chất

Xem thêm