Nhờ sửa code (1 người xem)

  • Thread starter Thread starter hoctap0
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

hoctap0

Thành viên mới
Tham gia
13/6/15
Bài viết
3
Được thích
0
Mình mới tìm hiểu VBA được 1 ngày. Nhờ các bạn sửa giúp mình.

Mã:
Sub thunghiem()
Dim t As Variant
For x = 1 To 10
For y = 1 To 10
Set t = Worksheets("sheet1").cell(x, 1) + Worksheets("sheet2").cell(y, 1)
If t > 35 Then
Worksheets("sheet2").cell(y, 2).Value = t
End If
Next y
Next x
End Sub
Khi chạy code này thì bị báo lỗi "object doesnd't support this property or method"
 
Code của bạn có 1 số lỗi: cells chứ không phải cell; dùng từ khóa Set không đúng, cần bỏ đi; x và y chưa khai báo (đây không phải lỗi nhưng bạn nên khai báo).
 
Upvote 0
Mình mới tìm hiểu VBA được 1 ngày. Nhờ các bạn sửa giúp mình.

Mã:
Sub thunghiem()
Dim t As Variant
For x = 1 To 10
For y = 1 To 10
Set t = Worksheets("sheet1").cell(x, 1) + Worksheets("sheet2").cell(y, 1)
If t > 35 Then
Worksheets("sheet2").cell(y, 2).Value = t
End If
Next y
Next x
End Sub
Khi chạy code này thì bị báo lỗi "object doesnd't support this property or method"
Ngoài vấn đề Cells, bạn còn một lỗi nữa đó là tùy tiện dùng SET, Set chỉ dùng đặt cho Object mà thôi, không phải dùng để thay thế giá trị nhé!

Mã:
Sub thunghiem()
Dim t As Variant
For x = 1 To 10
For y = 1 To 10
t = Worksheets("sheet1").Cells(x, 1) + Worksheets("sheet2").Cells(y, 1)
If t > 35 Then
Worksheets("sheet2").Cells(y, 2).Value = t
End If
Next y
Next x
End Sub
 
Upvote 0
các bạn xem giúp mình đoạn code này.
Biểu thức t chỉ phép + la ko báo lỗi. Còn lại phép -,*,/ đều báo lỗi "type mismatch".

Mã:
Sub thunghiem()
Dim t As Variant, x As Variant, y As Variant
For x = 1 To 100
For y = 1 To 20
t = Worksheets("sheet1").Cells(x, 5) * Worksheets("sheet1").Cells(x, 9)
If t > 35 Then
Worksheets("sheet2").Cells(y + 1, 3).Value = t
End If
Next y
Next x
End Sub
 
Upvote 0
các bạn xem giúp mình đoạn code này.
Biểu thức t chỉ phép + la ko báo lỗi. Còn lại phép -,*,/ đều báo lỗi "type mismatch".

Mã:
Sub thunghiem()
Dim t As Variant, x As Variant, y As Variant
For x = 1 To 100
For y = 1 To 20
t = Worksheets("sheet1").Cells(x, 5) * Worksheets("sheet1").Cells(x, 9)
If t > 35 Then
Worksheets("sheet2").Cells(y + 1, 3).Value = t
End If
Next y
Next x
End Sub
Bạn up file lên đi, nhìn chưa thấy lỗi gì cả.
 
Upvote 0
Thấy cần thiết fải nặng lời với bạn 1 lần mới được!

Nếu bạn là người đang tập tành viết cde thì chí ít nên viết như thế này:
PHP:
Option Explicit
Sub ThuNghiem()
 Dim T As Variant, X As Variant, Y As Variant

 For X = 1 To 100
    For Y = 1 To 20
        T = Worksheets("sheet1").Cells(X, 5) + Worksheets("sheet1").Cells(X, 9)
        If T > 35 Then
            Worksheets("sheet2").Cells(Y + 1, 3).Value = T
        End If
    Next Y
 Next X
End Sub

(1) Thụt đầu dòng ngay ngắn để làm chủ các dòng lệnh; tránh quên End If khi trên ta đã viết If

(2) Nếu lấy 1 chữ làm tên biến thì nên viết hoa khi khai báo; Sau đó ta nhập trong các dòng lệnh với chữ thường; Điều này tránh được lỗi chính tả ngớ ngẩn

(3) Viết tập thì nên tường minh; Nếu không chỉ tổ bạn tự lừa chính bạn mà thôi:
Nếu các lệnh đang sai, ta nên viết
Mã:
T = Worksheets("sheet1").Cells(X, 5).Value + Worksheets("sheet1").Cells(X, 9).Value

Sau khi đã chạy tốt/trơn tru macro rồi; Nếu thấy dòng đó quá dài ta mới có thể lượt lại như bạn đã ghi bên trên.

(3) Nếu bạn tìm ra lỗi của mình thì nhanh tiến bộ hơn nhiều & rất nhớ lâu; không gặp lại lỗi đó.
Còn ỉ lại diễn đàn thì khó tiến bộ lắm!

(..) chỉ là khuyến cáo: Nên dịch các dòng lệnh của mình ra tiếng Việt, hay ghi chú trên hay sau các dòng lệnh;

Người ta còn khuyến cáo nên đánh số các dòng lệnh & bẫy lỗi; Nhưng chuyện đó dịp khác ta nói nhiều hơn!

Hẹn sớm gặp lại!
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom