suynghimuagi
Thành viên mới

- Tham gia
- 28/5/15
- Bài viết
- 4
- Được thích
- 1
Công việc bạn cần như vậy hay bạn đang học VBA. Nếu công việc cần thì dùng công thức ở bài #2. Còn muốn học VBA thì tôi giúp!Các Bác giúp em!Em muốn lập code cho nút Ok, dò tìm giá trị 0 để điền dấu * vào ô cách ô bên phải 1 ô. như hình ạ!
View attachment 141575
Em đang tập viết VB ạCông việc bạn cần như vậy hay bạn đang học VBA. Nếu công việc cần thì dùng công thức ở bài #2. Còn muốn học VBA thì tôi giúp!
Thử đoạn code này xem sao:Em đang tập viết VB ạ![]()
Public Sub Do_tim()
Dim DL(), i As Long, KQ(), Lr As Long, d As Long
Lr = Sheet1.Range("E10000").End(xlUp).Row
DL = Sheet1.Range("D10:D" & Lr)
ReDim KQ(1 To UBound(DL), 1 To 1)
For i = 1 To UBound(DL)
If DL(i, 1) = 0 And Len(DL(i, 1)) > 0 Then
d = i
KQ(d, 1) = "*"
End If
Next i
Sheet1.Range("F10").Resize(d, 1) = KQ
End Sub
Em đang tập viết VB ạ![]()
Do giá trị Cột D thay đổi liên tục, nếu nhiều hơn 8 phần tử, thì khi lập công thức như Bác, ô rỗng vẫn điền dấu *, phải xóa công thức. Và khi nó nhiều hơn 8 phần từ thì phải kéo lại công thức… Nên em muốn code, code căn cứ vào giá trị 0 ở cột D,(cột này luôn có 1 giá trị bằng 0) để điền dấu * tương ứng ạ!
Sub NutOK()
Dim Tm, i
Tm = Sheet1.[D10:D17]
For i = 1 To UBound(Tm, 1)
Tm(i, 1) = IIf(Tm(i, 1) = 0, "*", "")
Next
Sheet1.[D10:D17].Offset(, 2) = Tm
End Sub