Giúp code tìm các ngày thứ 2 nếu biết Tháng và Năm (1 người xem)

Liên hệ QC

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

minhtuan55

Thành viên bị đình chỉ hoạt động
Thành viên bị đình chỉ hoạt động
Tham gia
23/3/16
Bài viết
705
Được thích
52
Chào cả nhà GPE ! Em cần đoạn code tìm các ngày thứ 2 dựa vào tháng năm ( Hiện tại em đang dùng chiêu Kéo từ ngày 1 đến hết tháng, sau đó hàm lọc weekday = 2 ) Thấy mất thời gian và phải dùng bảng phụ ). Xin mọi người giúp đở

215211

Sub camon()
Dim i as long
For i = 1 to 99999999999999999999 số viết 9 viết dài 5 km
Cảm ơn GPE = Cảm ơn GPE + i
Next i
Msbox (" Cỡi mada6 ra quán nhậu làm Chai Bia ")
End sub
 
Cái này trong C++ thì viết mần răng
#include <một đống thư viện cần thiết>
using namepace std;
class LamOnLayDuc
{
public: // giành cho GPE
void GPELamThayMe() { // còn chờ chấm điểm
std::string s("Cỡi xe đạp hoặc xe máy, gõ bàn phím, tét cốt bỏ mẹ");
... // code chưa viết
}
private: // của riêng
XeHop XeRieng("Mada", 12E8); // class XeHop không cho xem code (bí mật mờ)
// chỉ biết rằng hàm dựng cho phép lập đối tượng với tên xe và giá tiền
void GoVaiDong() {
for (BigInt i = 1; i <= BigInt(9, Km(5)); i++) cout << "Cảm ơn GPE"; // class BigInt và Km lấy trên mạng
cout << "Cỡi Mada đi nhậu";
}
}
 
Upvote 0
Chào cả nhà GPE ! Em cần đoạn code tìm các ngày thứ 2 dựa vào tháng năm ( Hiện tại em đang dùng chiêu Kéo từ ngày 1 đến hết tháng, sau đó hàm lọc weekday = 2 ) Thấy mất thời gian và phải dùng bảng phụ ). Xin mọi người giúp đở

View attachment 215211

Sub camon()
Dim i as long
For i = 1 to 99999999999999999999 số viết 9 viết dài 5 km
Cảm ơn GPE = Cảm ơn GPE + i
Next i
Msbox (" Cỡi mada6 ra quán nhậu làm Chai Bia ")
End sub
Tham khảo code này thử:
Mã:
Sub Mnday()
Dim m As Integer, y As Integer, i As Byte, j As Byte
With shee1
    m = Range("B6")
    y = Range("C6")
    For i = 1 To Day(DateSerial(y, m + 1, 0))
        If Weekday(DateSerial(y, m, i), vbMonday) = 1 Then
            j = j + 1
            Range("F5").Offset(j) = DateSerial(y, m, i)
        End If
    Next i
End With
End Sub
 

File đính kèm

Upvote 0
Tham khảo code này thử:
Mã:
Sub Mnday()
Dim m As Integer, y As Integer, i As Byte, j As Byte
With shee1
    m = Range("B6")
    y = Range("C6")
    For i = 1 To Day(DateSerial(y, m + 1, 0))
        If Weekday(DateSerial(y, m, i), vbMonday) = 1 Then
            j = j + 1
            Range("F5").Offset(j) = DateSerial(y, m, i)
        End If
    Next i
End With
End Sub

1. Bạn chỉ cần tìm ngày đầu tiên, sau đó dùng vòng lăp +7

2. Lập một hàm tìm ngày đầu tiên. Hàm này nhận tham số.

Nếu sửa code của bạn thì như thế này:

Function ThuDauTien(ByVal m As Integer, ByVal y As Integer, ByVal thu) As Variant
' thực ra có công thức tìm ngày thẳng, không cần phải mò. Nhưng toi cứ tạm theo giải thuật của bạn
ThuDauTien = DateSerial(y, m, 1)
Do While Weekday(ThuDauTien, thu) <> 1
ThuDauTien = ThuDauTien + 1
Loop
End Function

Sub MnDay()
...
Dim d As Variant
d = ThuDauTien(m, y, vbMonDay)
Do
' ghi ra sheet ở đây
d = d + 7
Loop While Month(d) = m
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Tham khảo code này thử:
Mã:
Sub Mnday()
Dim m As Integer, y As Integer, i As Byte, j As Byte
With shee1
    m = Range("B6")
    y = Range("C6")
    For i = 1 To Day(DateSerial(y, m + 1, 0))
        If Weekday(DateSerial(y, m, i), vbMonday) = 1 Then
            j = j + 1
            Range("F5").Offset(j) = DateSerial(y, m, i)
        End If
    Next i
End With
End Sub

Code của anh thì trên cả tuyệt vời . Thanh anh nhiều chúc anh 1 ngày nào đó rực rỡ với code bên dưới
Mã:
Sub codecuaanh()
Công đức hiện tại =  Công đức hiện tại + 1
If  Công đức hiện tại >= 100 ANd  Công đức hiện tại < 500 then
   Phương tiện tương lai=   Mazda 6 2.0
ElseIf  Công đức hiện tại >= 500 ANd  Công đức hiện tại < 1000 then
   Phương tiện tương lai=   BMW 320i đời 2019
Else
   Phương tiện tương lai=   Mercedes E300 AMG 2019
Endif
End sub
 
Upvote 0
Cái này bạn làm công thức cũng xong mà, này nha:
Tại [D7] bạn áp công thức =DATE(C6,B6,1)
Tại [F7] bạn xài công thức =D7+CHOOSE(WEEKDAY(D7),1,0,6,5,4,3,2)
Tại ô dưới [F7] bạn thiết lập công thức =F7+7
 
Upvote 0
Bổ sung cho bài #5, công thức tìm thẳng ngày của thứ như sau:

Function NgayThuNTrongThang(ByVal nam As Integer, ByVal thang As Integer, ByVal thu As Integer, ByVal N As Integer) As Variant
' hàm tìm ngày của ngày thu trong tuần thứ N trong tháng thang và năm nam
' thu theo các giá trị: chủ nhật = 1, thứ hai = 2, ...
NgayThuNTrongThang = DateSerial(nam, thang, 1 + 7 * N) - Weekday(DateSerial(nam, thang, 8 - thu))
End Function

Như vậy:
ThuHaiDaiTienTrongNamThang = NgayThuNTrongThang(Nam, Thang, vbMonday, 1)
 
Upvote 0
Web KT

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

Back
Top Bottom