Xin nhờ các bác rút gọn lại đoạn mã!

Liên hệ QC

dungsgt

Thành viên mới
Tham gia
29/8/07
Bài viết
38
Được thích
11
Tôi đang tập viết VBA nhưng đoạn mã này có vẻ dài quá, không biết có cách nào viết lại cho ngắn gọn được không? Nhờ các cao thủ chỉ giáo nhé!
PHP:
sl1 = Trim(Tb_sl1.Value)
If sl1 = "" Then
sl1 = 0
End If
dg1 = Trim(Tb_dg1.Value)
If dg1 = "" Then
dg1 = 0
End If
sl2 = Trim(Tb_SL2.Value)
If sl2 = "" Then
sl2 = 0
End If
dg2 = Trim(Tb_dg2.Value)
If dg2 = "" Then
dg2 = 0
End If
sl3 = Trim(Tb_sl3.Value)
If sl3 = "" Then
sl3 = 0
End If
dg3 = Trim(Tb_dg3.Value)
If dg3 = "" Then
dg3 = 0
End If
sl4 = Trim(Tb_sl4.Value)
If sl4 = "" Then
sl4 = 0
End If
dg4 = Trim(Tb_dg4.Value)
If dg4 = "" Then
dg4 = 0
End If
 
Có phải khi bạn update thành tiền nó báo lỗi do đơn giá chưa nhập không.
Hình như trong property của textbox có thuộc tính default value, bạn cho nó là 0. Nếu chưa nhập "" # 0.
 
Đúng rồi. Mình muốn câu lệnh có đơn giản và ngắn gọn hơn. Mình tìm trong property nhưng sao không thấy có thuộc tính đấy nhỉ? À báo cho bạn ThuNghi biết làm mình cũng vừa mới tìm được các để khi nhập số vào thì nó tự tính toán luôn rồi (không cần cmd_tinhtoan nữa). Mừng quá.
 
Bạn nhấn F4 vào property của Tb_sl1 chọn value cho = 0 (dòng thứ 4 từ dưới lên), còn dg thì khỏi
Tại DG
Private Sub Dg1_AfterUpdate()
Tien1.Value = Round(SL1.Value * Dg1.Value, 0)
End Sub
Đọan code trên ie là sau khi nhập dg thì tính tiền.


 
dungsgt đã viết:
Đang tập, nhưng đoạn mã này có vẻ dài quá, có cách nào viết lại cho ngắn gọn được không? Nhờ các cao thủ chỉ giáo nhé!
....

Theo mình bạn có thể khai biến mảng thì dễ nhìn hơn một chút; VD:
Mã:
 Redim MaDLieu(1 to 4, 1 to 2)
 Dim Ij as Byte, iI as Byte
     MaDLieu(1,1)= [COLOR=#0000bb]Trim[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Tb_sl1[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Value[/COLOR][COLOR=#007700])
     MaDLieu(1, 2)= [COLOR=#0000bb]Trim[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Tb_dg1[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Value[/COLOR][COLOR=#007700])[/COLOR][/COLOR]
[COLOR=#007700][COLOR=#007700]    MaDLieu(2, 1)= [COLOR=#0000bb]Trim[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Tb_sl2[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Value[/COLOR][COLOR=#007700])
     .. . . . . .[/COLOR][/COLOR][/COLOR]
[COLOR=#007700][COLOR=#007700][COLOR=#007700]    MaDLieu(4, 2)= [COLOR=#0000bb]Trim[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]Tb_dg4[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000bb]Value[/COLOR][COLOR=#007700])[/COLOR][/COLOR][/COLOR][/COLOR]
  For iI = 1 to 4
       [COLOR=#007700]If [/COLOR][COLOR=#0000bb]MDLieu(iI,1) [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"" [/COLOR][COLOR=#0000bb]Then MDLieu(iI,1) [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]0  [/COLOR]
[COLOR=#0000bb]      [COLOR=#007700]If [/COLOR][COLOR=#0000bb]MDLieu(iI,2) [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#dd0000]"" [/COLOR][COLOR=#0000bb]Then MDLieu(iI,2) [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000bb]0  [/COLOR][/COLOR]
  Next iI
/)/hưng lợi bất cập hại, do xuất hiện thêm vài biến!
 
Web KT
Back
Top Bottom