Tạo hàm vba

Liên hệ QC

Minh Đức 1309

Thành viên chính thức
Tham gia
23/11/17
Bài viết
64
Được thích
3
Giới tính
Nam
Em muốn tạo 1 hàm ví dụ : khoangngay(ngaydau,ngaycuoi,chuoi) với ngaydau là ngày bắt đầu và ngaycuoi là ngày kết thúc ,chuoi có thể có hoặc không.Ví dụ ngay đầu là 10-7-2019 ngày cuối là 20-7-2019 thì n ra mảng gồm từ ngày 10 đến ngày 20, thêm chuoi thì sẽ ghép chuoi với ngày
 
Em muốn tạo 1 hàm ví dụ : khoangngay(ngaydau,ngaycuoi,chuoi) với ngaydau là ngày bắt đầu và ngaycuoi là ngày kết thúc ,chuoi có thể có hoặc không.Ví dụ ngay đầu là 10-7-2019 ngày cuối là 20-7-2019 thì n ra mảng gồm từ ngày 10 đến ngày 20, thêm chuoi thì sẽ ghép chuoi với ngày
Mã:
Function khoangngay (ngaydau, ngaycuoi, optional byval chuoi as string) 
Dim i as long, ketqua(ngaydau to ngaycuoi, 1 to 1)
For i = ngaydau to ngaycuoi
  Ketqua(i, 1) = "'" & chuoi & format(i, "dd/mm/yyyy")
Next
Khoangngay = ketqua
End function
 
Mã:
Function khoangngay (ngaydau, ngaycuoi, optional byval chuoi as string)
Dim i as long, ketqua(ngaydau to ngaycuoi, 1 to 1)
For i = ngaydau to ngaycuoi
  Ketqua(i, 1) = "'" & chuoi & format(i, "dd/mm/yyyy")
Next
Khoangngay = ketqua
End function
223272
Bài đã được tự động gộp:

Bạn muốn thế nào thì gởi file, kết quả muốn có bằng thủ công thì mọi người mới hiểu.
Dùng VBA mà topic trong chủ đề Hàm và công thức Excel?
Đây ạ
 

File đính kèm

  • Book1.xlsx
    8.7 KB · Đọc: 5
Lần chỉnh sửa cuối:
Lỗi #REF! là lỗi tham chiếu không tồn tại do người dùng chứ không phải do code.
 
Gởi thêm 1 hàm, phải có tham số dòng muốn có kết quả.
Làm theo cách của anh, em nghĩ thế này là được.
Mã:
Public Function VBA_Function(Rws As Long, NgayDau As Long, NgayCuoi As Long, Optional Chuoi As String = Empty) As String
Dim R As Long
    R = NgayCuoi - NgayDau + 1
    If Rws > R Then
        VBA_Function = ""
    Else
        VBA_Function = Chuoi & Format(NgayDau + Rws - 1, "dd/mm/yyyy")
     End If
End Function
 
Làm theo cách của anh, em nghĩ thế này là được.
Mã:
Public Function VBA_Function(Rws As Long, NgayDau As Long, NgayCuoi As Long, Optional Chuoi As String = Empty) As String
Dim R As Long
    R = NgayCuoi - NgayDau + 1
    If Rws > R Then
        VBA_Function = ""
    Else
        VBA_Function = Chuoi & Format(NgayDau + Rws - 1, "dd/mm/yyyy")
     End If
End Function
Vậy thì vầy luôn:
PHP:
Public Function VBA_Function2(Rws As Long, NgayDau As Long, NgayCuoi As Long, Optional Chuoi As String = Empty) As String
Dim R As Long
    R = NgayCuoi - NgayDau + 1
    If Rws <= R Then
        VBA_Function2 = Chuoi & Format(NgayDau + Rws - 1, "dd/mm/yyyy")
     End If
End Function
 
Web KT
Back
Top Bottom