Thắc mắc về điều kiện If .... And ... then... ?

Liên hệ QC

Thanh Bình PV

Thành viên hoạt động
Tham gia
30/10/19
Bài viết
151
Được thích
19
Em mới học VBA và Em có tạo 1 userform để tính toán cộng 2 số lại.
Em có thêm điều kiện để bắt buộc phải nhập cả 2 ô nhưng e chạy form thì chỉ cần nhập 1 trong 2 ô đều tính toán cả.
A/Chị giải thích giúp e được k ạ. Em cảm ơn.
1578462497140.png
Mã:
Private Sub cong_Click()
Dim so1 As Integer
Dim so2 As Integer
Dim kq As Integer

so1 = Val(Text111.Text)
so2 = Val(Text112.Text)
If so1 = Val("") And so2 = Val("") Then
MsgBox ("nhap so")
Else
kq = so1 + so2
MsgBox (kq)
End If

End Sub
 
Thay And bằng Or, chỉ cần 1 TextBox chưa nhập số là hiện MsgBox.
 
Thay And bằng Or, chỉ cần 1 TextBox chưa nhập số là hiện MsgBox.
E làm được r ạ. cho e hỏi luôn trường hợp này e thử dùng select case nhưng kq lại không ra.
Mã:
Private Sub cong_Click()
Dim so1 As Integer
Dim so2 As Integer
Dim kq As Integer
so1 = Val(Text111.Text)
so2 = Val(Text112.Text)

Select Case so1 Or so2
Case Val("")
MsgBox ("nhap so")
Case Else
kq = so1 + so2
End Select
MsgBox (kq)

End Sub
 
Or trong VBA là toán tử bit. Không hẳn là toán tử lô gic.
Nếu so1 là 1 và so2 là 2 thì so1 Or so2 là 3.
Select Case là lệnh so sánh trị. Không phải là lệnh xét lô gic.
 
Or trong VBA là toán tử bit. Không hẳn là toán tử lô gic.
Nếu so1 là 1 và so2 là 2 thì so1 Or so2 là 3.
Select Case là lệnh so sánh trị. Không phải là lệnh xét lô gic.
Thank a nhiều..
Trong trường hợp đầu tiên nếu thay cộng bằng chia và đổi điều kiện như code dưới thì :
nếu e nhập ô 2 = "0" hoặc không nhập thì nó đều ra kết quả là " không thể tính".
Vậy cho e hỏi có cách nào nếu không nhập ô đó thì sẽ ra kết quả là "nhap so" còn nhập "0" thì sẽ ra kết quả "khong the tinh".

Mã:
Private Sub cong_Click()
Dim so1 As Integer
Dim so2 As Integer
Dim kq As Integer

so1 = Val(Text111.Text)
so2 = Val(Text112.Text)
If so1 = Val("") Then
MsgBox ("nhap so")
ElseIf so2 = Val("") Then
MsgBox ("khong the tinh")
Else
kq = so1 / so2
MsgBox (kq)
End If

End Sub
 
Tôi dị ứng với hai điều:
1. dùng tiếng Tây
2. dùng từ viết tắt.
 
Thank a nhiều..
Trong trường hợp đầu tiên nếu thay cộng bằng chia và đổi điều kiện như code dưới thì :
nếu e nhập ô 2 = "0" hoặc không nhập thì nó đều ra kết quả là " không thể tính".
Vậy cho e hỏi có cách nào nếu không nhập ô đó thì sẽ ra kết quả là "nhap so" còn nhập "0" thì sẽ ra kết quả "khong the tinh".

Mã:
Private Sub cong_Click()
Dim so1 As Integer
Dim so2 As Integer
Dim kq As Integer

so1 = Val(Text111.Text)
so2 = Val(Text112.Text)
If so1 = Val("") Then
MsgBox ("nhap so")
ElseIf so2 = Val("") Then
MsgBox ("khong the tinh")
Else
kq = so1 / so2
MsgBox (kq)
End If

End Sub
Bạn đã gán so1 và so2 = Val ... thì trong điều kiện có thể ghi thẳng luôn If so1 = 0 Then.
Nếu không nhập thì đặt điều kiện là If Text111.Text = "" Or Text112.Text = "" Then.
 
Tôi dị ứng với hai điều:
1. dùng tiếng Tây
2. dùng từ viết tắt.
Em sẽ rút kinh nghiệm ạ.
Bài đã được tự động gộp:

Bạn đã gán so1 và so2 = Val ... thì trong điều kiện có thể ghi thẳng luôn If so1 = 0 Then.
Nếu không nhập thì đặt điều kiện là If Text111.Text = "" Or Text112.Text = "" Then.
Cảm ơn anh. Em làm được rồi.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom