Cần giúp viết Code thể hiện nếu ô nào lớn hơn Tháng 06 năm 2013 thì gõ số 1 (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hung2412

Thành viên tích cực
Tham gia
5/8/08
Bài viết
929
Được thích
240
Giới tính
Nam
Xin chào các Anh chị và các bạn GPE!
Nhờ các Anh chị và các bạn giúp đỡ cho tôi vấn đề này với, cụ thể như sau:
Tôi có một File Excel có dữ liệu như sau:

R3MMkWn.png


Có Code nào thể hiện rằng:
- Nếu ô nào thuộc cột B có tháng năm lớn hơn hoặc bằng Tháng 06 năm 2013 thì ô cùng dòng cột D sẽ hiện số 1.
- Nếu ô nào thuộc cột B có tháng năm nhỏ hơn Tháng 06 năm 2013 thì ô cùng dòng cột D sẽ hiện số 0.
=> Kết quả mong muốn như hình vẽ sau:

bEnCtcb.png


Mong các Anh chị và các bạn GPE chỉ giáo!
Trân trọng cảm ơn!
P/s: Có 01 File đính kèm.
 

File đính kèm

Thử với chàng này:
PHP:
Option Explicit
Sub NumForDate()
 Dim Cls As Range:                                  Dim Sai As Boolean
 Dim Thg As Byte, Nm As Integer, VTr As Byte
 
 For Each Cls In [B5].CurrentRegion
    Nm = CInt(Right(Cls.Value, 4))
    VTr = InStr(Cls.Value, " ")
    Thg = CByte(Mid$(Cls.Value, VTr, 3))
    If Nm = 2013 Then
        If Thg < 6 Then Sai = True Else Sai = False
    ElseIf Nm < 2013 Then
        Sai = True
    ElseIf Nm > 2013 Then
        Sai = False
    End If
    If Sai Then Cls.Offset(, 2).Value = 0 Else Cls.Offset(, 2).Value = 1
 Next Cls
End Sub
 
Upvote 0
Thử với chàng này:
PHP:
Option Explicit
Sub NumForDate()
 Dim Cls As Range:                                  Dim Sai As Boolean
 Dim Thg As Byte, Nm As Integer, VTr As Byte
 
 For Each Cls In [B5].CurrentRegion
    Nm = CInt(Right(Cls.Value, 4))
    VTr = InStr(Cls.Value, " ")
    Thg = CByte(Mid$(Cls.Value, VTr, 3))
    If Nm = 2013 Then
        If Thg < 6 Then Sai = True Else Sai = False
    ElseIf Nm < 2013 Then
        Sai = True
    ElseIf Nm > 2013 Then
        Sai = False
    End If
    If Sai Then Cls.Offset(, 2).Value = 0 Else Cls.Offset(, 2).Value = 1
 Next Cls
End Sub

Sao không "chơi" như vầy cho gọn một chút ta?
PHP:
Sub HicHic()
Dim Cls As Range, Thg As Long, Nm As Long, DK As Long
DK = DateSerial(2013, 6, 1)'<-------------Điều kiện so sánh'
 For Each Cls In Range([B4], [B4].End(xlDown))
    Nm = Right(Cls.Value, 4):       Thg = Mid(Cls.Value, 7, 3)
    If DateSerial(Nm, Thg, 1) >= DK Then
        Cls.Offset(, 2).Value = 1
    Else
        Cls.Offset(, 2).Value = 0
    End If
 Next Cls
End Sub
Dzọt lẹ kẻo bị "Lão Đại quánh".
 
Lần chỉnh sửa cuối:
Upvote 0
Sao Thầy lại có thể lấy mộc là ngày mùng một tháng sáu năm hai không mười ba được?

Cái mốc của người ta là cả 1 tháng cơ mà!
 
Upvote 0
Sao Thầy lại có thể lấy mộc là ngày mùng một tháng sáu năm hai không mười ba được?

Cái mốc của người ta là cả 1 tháng cơ mà!
Là sao ta, hổng hiểu?
Có Code nào thể hiện rằng:
- Nếu ô nào thuộc cột B có tháng năm lớn hơn hoặc bằng Tháng 06 năm 2013 thì ô cùng dòng cột D sẽ hiện số 1.
- Nếu ô nào thuộc cột B có tháng năm nhỏ hơn Tháng 06 năm 2013 thì ô cùng dòng cột D sẽ hiện số 0.
=> Kết quả mong muốn như hình vẽ sau:
Lớn hơn hoặc bằng tháng 6 thì 1/6 cũng là lớn hơn hoặc bằng tháng 6 mà.
Hổng lẽ 1/6 nhỏ hơn hoặc lớn hơn tháng 6 sao ta?
Híc! Lẩu mắm có làm "đại ca" giận hông vậy?
 
Upvote 0
Sao không "chơi" như vầy cho gọn một chút ta?
PHP:
Sub HicHic()
Dim Cls As Range, Thg As Long, Nm As Long, DK As Long
DK = DateSerial(2013, 6, 1)'<-------------Điều kiện so sánh'
 For Each Cls In Range([B4], [B4].End(xlDown))
    Nm = Right(Cls.Value, 4):       Thg = Mid(Cls.Value, 7, 3)
    If DateSerial(Nm, Thg, 1) >= DK Then
        Cls.Offset(, 2).Value = 1
    Else
        Cls.Offset(, 2).Value = 0
    End If
 Next Cls
End Sub
Dzọt lẹ kẻo bị "Lão Đại quánh".

Sao không chơi dzầy cho nó đỡ phức tạp ta

PHP:
Sub KHakha()

'Hong Dim hong as chi.

    [B4].CurrentRegion.Offset(0, 2).FormulaR1C1 = "=IF(--SUBSTITUTE(SUBSTITUTE(RC2,""Tháng "",""01-""),""n" & ChrW(259) & "m "",""-"")>=41426,1,0)"  
   [B4].CurrentRegion.Offset(0, 2).Value = [B4].CurrentRegion.Offset(0, 2).ValueEnd SubEnd Sub
chuồn thôi hú hú--=0
 
Lần chỉnh sửa cuối:
Upvote 0
Sao không chơi dzầy cho nó đỡ phức tạp ta

PHP:
Sub KHakha()

'Hong Dim hong as chi.

    [B4].CurrentRegion.Offset(0, 2).FormulaR1C1 = "=IF(--SUBSTITUTE(SUBSTITUTE(RC2,""Tháng "",""01-""),""n" & ChrW(259) & "m "",""-"")>=41426,1,0)"  
   [B4].CurrentRegion.Offset(0, 2).Value = [B4].CurrentRegion.Offset(0, 2).ValueEnd SubEnd Sub
chuồn thôi hú hú--=0

"Chết queo" với những máy Control Panel "mm/dd/yyyy".
Cái CurrentRegion không phải lúc nào cũng xài.
Nếu "mắc xài" thì như vầy cho chắc:
PHP:
Sub HuHu()
[B4].CurrentRegion.Offset(0, 2).FormulaR1C1 = "=IF(DATE(RIGHT(RC2,4),MID(Rc2,7,2),1)>=41426,1,0)"
[B4].CurrentRegion.Offset(0, 2).Value = [B4].CurrentRegion.Offset(0, 2).Value
End Sub
Mà cũng chưa chắc, nếu dữ liệu không chuẩn (cách nhau nhiều dấu cách)
hú hú....
 
Lần chỉnh sửa cuối:
Upvote 0
"Chết queo" với những máy Control Panel "mm/dd/yyyy".
Cái CurrentRegion không phải lúc nào cũng xài.
Nếu "mắc xài" thì như vầy cho chắc:
PHP:
Sub HuHu()
[B4].CurrentRegion.Offset(0, 2).FormulaR1C1 = "=IF(DATE(RIGHT(RC2,4),MID(Rc2,7,2),1)>=41426,1,0)"
[B4].CurrentRegion.Offset(0, 2).Value = [B4].CurrentRegion.Offset(0, 2).Value
End Sub
Mà cũng chưa chắc, nếu dữ liệu không chuẩn (cách nhau nhiều dấu cách)
hú hú....
vậy thay đổi chút xem có bị không bác
PHP:
Sub KHakha()


'Hong Dim hong as chi.


   [B4].CurrentRegion.Offset(0, 2).FormulaR1C1 = "=IF((RIGHT(RC2,4)&""-""&MID(RC2,7,2)&""-""&""01"")*1>=41426,1,0)"
   [B4].CurrentRegion.Offset(0, 2).Value = [B4].CurrentRegion.Offset(0, 2).Value
End Sub
 
Upvote 0
Record macro phát nó ra vầy:
Mã:
Sub Macro2()
  Sheet1.Range("D4:D14").Value = "=(DATE(RIGHT(TRIM(RC[-2]),4),MID(TRIM(RC[-2]),7,2),1)>=DATE(2013,6,1))*1"
End Sub
Chẳng biết đúng hay sai --=0
 
Upvote 0
Giải thuật:
Nối từ cuối cùng với từ thứ 2, nếu lớn hơn hoặc bằng "201306" thì là đạt

Sub tt()
' xét xem một ô dang "tháng mm năm yyyy" có lớn hơn hay bằng tháng Sáu 2013
' code chỉ dùng để diễn đạt giải thuật

a = Range("B4:b14").Value
For i = 1 To UBound(a)
a(i, 1) = IIf(Split(a(i, 1), " ")(3) & Split(a(i, 1), " ")(1) >= "201306", 1, 0)
Next i
Range("D4").Resize(UBound(a)) = a
End Sub
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom