Giải thích giúp em lỗi như hình

Liên hệ QC

phuongvq123

Thành viên tiêu biểu
Tham gia
15/4/20
Bài viết
526
Được thích
331
Xin chào các thành viên.
Câu 1 em mới bắt đầu làm quen với VBA, khi làm theo giáo trình em gặp lỗi như hình 1 (hình trên )mà chưa hiểu nguyên nhân
Câu 2 em đã lưu file đuôi xlsm nhưng hôm sau mở file lên làm tiếp, viết xong code thì không chạy được và cảnh báo như hình 2(hình dưới)
Vậy mong được các thành viên giải đáp và đưa ra cách khắc phục
Hinh 1.png
hinh 2.png
 

File đính kèm

  • caulenhif.xlsm
    17.1 KB · Đọc: 2
Xin chào các thành viên.
Câu 1 em mới bắt đầu làm quen với VBA, khi làm theo giáo trình em gặp lỗi như hình 1 (hình trên )mà chưa hiểu nguyên nhân
Câu 2 em đã lưu file đuôi xlsm nhưng hôm sau mở file lên làm tiếp, viết xong code thì không chạy được và cảnh báo như hình 2(hình dưới)
Vậy mong được các thành viên giải đáp và đưa ra cách khắc phục
View attachment 250008
View attachment 250009
Hình 1, với khai báo Option Explicit thì biến bắt buộc phải khai báo trước, doset là biến chưa được khai báo trước nên không sử dụng được
Hình 2, Do bạn mở file lên chưa ấn vào cái này: 1606298294623.png
Bài đã được tự động gộp:

Ý ở câu 1 chắc là như này:
Mã:
Option Explicit
Sub trang_thai()
Dim Doset As Double
Sheets("Sheet2").Select
Doset = Cells(2, 2).Value
Select Case Doset
Case 1.1 To 10
Cells(2, 3).Value = "Chay"
Case 0.75 To 1.1
Cells(2, 3).Value = "Deo chay"
Case 0.5 To 0.74
Cells(2, 3).Value = "Deo mem"
Case 0.25 To 0.49
Cells(2, 3).Value = "Deo cung"
Case Is < 0.25
Cells(2, 3) = "Cung"
End Select
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Khi dùng Select Case thì
Doset là biến không cần thiết

Sheets("Sheet2").Select
Select Case CLng(Cells(2, 2).Value)
...
Trị CLng(Cells(2, 2).Value) được tính 1 lần và đem vào áp dụng cho các cases

Chỉ dùng biến Doset nếu cấu trúc là If-Then-Else

If Doset >= 1.1 And Doset <= 10
...
Else If Doset ...
Trị CLng(Cells(2, 2).Value) này được gọi ra nhiều lần chi nên cho vào một biến vừa nhanh vừa dễ đọc code.

Chú: đây là một trong những trường hợp mà Select Case vượt trội If-Then-Else.
Có những trường hợp khác, If-Then-Else vượt hơn. Bạn phải tự nghiệm lấy.
 
Upvote 0
Giáo trình thiếu hay do mình đọc thiếu các bài mở đầu vậy?

Ý 1 xem bài số 4
Ý 2 xem bài số 0

View attachment 250014
Cái giáo trình này trước e tải trên mạng, em cũng không biết là do thiếu vì mỗi ví dụ đều đưa ra bắt đầu từ Sub...end sub
Bài đã được tự động gộp:

Em cảm ơn mọi người đã trợ giúp
 
Upvote 0
Web KT
Back
Top Bottom