9xconduongtoidi
Thành viên mới
- Tham gia
- 6/12/14
- Bài viết
- 10
- Được thích
- 0
Option Explicit
Function Noidung(ByVal cell As Range) As String
Dim rng, i&, j&, lr&
Application.Volatile
With Worksheets("Sheet1")
lr = .Cells(Rows.Count, "A").End(xlUp).Row
rng = .Range("A1:D" & lr).Value2
End With
For i = 2 To lr
For j = 2 To 4
If rng(i, j) = cell.Value2 Then
If Noidung = "" Then
Noidung = rng(1, j) & rng(i, 1)
Else
Noidung = Noidung & "; " & rng(1, j) & rng(i, 1)
End If
End If
Next
Next
End Function
Em chào anh ạApplication.Volatile
Option Explicit
Sub Noidung2()
Dim rng, i&, j&, lr&, lr2&, cell As Range, nd As String
Application.ScreenUpdating = False
With Worksheets("Sheet1")
lr = .Cells(Rows.Count, "A").End(xlUp).Row
rng = .Range("A1:D" & lr).Value2
End With
With Worksheets("Calendar")
lr2 = .Cells(Rows.Count, "B").End(xlUp).Row
For Each cell In .Range("B2:H" & lr2)
nd = ""
If IsDate(cell) Then
cell.Offset(1, 0).ClearContents
For i = 2 To lr
For j = 2 To 4
If rng(i, j) = cell.Value2 Then
If nd = "" Then
nd = rng(1, j) & rng(i, 1)
Else
nd = nd & "; " & rng(1, j) & rng(i, 1)
End If
End If
Next
Next
cell.Offset(1, 0).Value = nd
End If
Next
End With
Application.ScreenUpdating = True
End Sub
Volatile formula, nghĩa là mỗi khi có sự thay đổi trên bảng tính (dù không có liên quan đến các ô mà nó tham chiếu đến), nó cũng tự động cập nhật. VD: INDIRECT, OFFSET, ADDRESS,... dẫn đến tốc độ bị ảnn hưởng.Cái này có chức năng gì thế anh?
Và lúc nào thì dùng nó, lúc nào không thế ạ
Application.Volatile
Em cảm ơn anh, cách 2 em làm thuận tiện nhất. Tuy nhiên, chắc câu hỏi của em không dc rõ ràng. Em đang cần nó hiển thị cả những trường hợpCách 2:
Nếu không muốn đi đến từng ô trong từng tháng để paste, dùng subroutine. Trong chế độ soạn thảo, nhấn F5 1 lần để lấy kết quả.
Nhược điểm: Không tự động cập nhật mỗi khi có thay đổi, mà phải chạy sub (hoặc tạo 1 nút button, gán code cho nó rồi click, như mình làm trong file)
Ngày hết hạn HĐ | Định giá lại tài sản |
Bạn thử hết chưa? Trong ô thể hiện hết các thông tin mà.Em cảm ơn anh, cách 2 em làm thuận tiện nhất. Tuy nhiên, chắc câu hỏi của em không dc rõ ràng. Em đang cần nó hiển thị cả những trường hợp
VBA em không rõ lắm, mong anh chỉ dạy giúp ạ
Ngày hết hạn HĐ Định giá lại tài sản
Em cảm ơn anh rất nhiều ạ. Em test lại thì đúng rồi ạ.Bạn thử hết chưa? Trong ô thể hiện hết các thông tin mà.
VD: nếu 1 ngày có 2 trường hợp xảy ra thì trong ngày đó sẽ là:
"Ngày hết hạn HĐ: Nguyễn Văn A; Định giá lại tài sản: Nguyễn Văn B"
Bạn thử lại nếu không được thì điền tay kết quả mong muốn và gửi file lại nhé.