Lỗi 1004 method range of object '_worksheet' failed

Trạng thái
Không mở trả lời sau này.

tanhung1132qn

Yêu THVBA
Mình đang tập tành tự học VBA có viết đoạn code sau mà cứ báo lỗi dòng
"If cotB = 2 And HangB > 7 And BILL.Range("B" & temp).Value <> 0 And BILL.Range("F" & temp).Value <> 1 Then"
mong mn giúp đỡ :<

Mã:
Dim temp As Long
Dim HangB As Variant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim BILL As Worksheet
Set BILL = Sheet5

cotB = ActiveCell.Column
Select Case cotB
Case Is = 6
GoTo ketthuc
Case Is = 2
temp = HangB
HangB = ActiveCell.Row
If cotB = 2 And HangB > 7 And BILL.Range("B" & temp).Value <> 0 And BILL.Range("F" & temp).Value <> 1 Then
BILL.Range("F" & temp).Value = 1
End If
End Select
ketthuc:

End Sub
 

phuonghong1997

Yêu THVBA như điếu đổ
Thử thay dòng code này:
Mã:
Set BILL = Sheet5
thành:
Mã:
Set BILL = Sheets(5)
Bạn nên học bất cứ khóa học VBA ở bất kỳ đâu, chứ viết code kiểu này rồi đăng đàn hỏi, thực sự rất lãng phí thời gian. Hoặc bạn có thể tham gia các diễn đàn như GPE thì phù hợp với năng lực của bạn hơn.
 

tanhung1132qn

Yêu THVBA
Thử thay dòng code này:
Mã:
Set BILL = Sheet5
thành:
Mã:
Set BILL = Sheets(5)
Bạn nên học bất cứ khóa học VBA ở bất kỳ đâu, chứ viết code kiểu này rồi đăng đàn hỏi, thực sự rất lãng phí thời gian. Hoặc bạn có thể tham gia các diễn đàn như GPE thì phù hợp với năng lực của bạn hơn.
mình đã fix theo trên mà bị lỗi mới á :<
Run-time error '9':
Subscript out of range
 

NhanSu

SMod
Thành viên BQT
Đối với biến worksheet có thể gán theo codename (sheet5) hoặc theo index (sheets(5)) đều được.
Code của bạn nếu chỉ có vậy sẽ lỗi do temp=0 (biến temp được gán bằng HangB nhưng HangB lúc này chưa được gán nên vẫn bằng 0). Để khắc phục thì bạn đảo thứ tự lệnh gán temp =HangB xuống dưới lệnh gán HangB=activecell.row
Nếu code của bạn còn các lệnh thay đổi 2 biến này ở chỗ khác thì cần xem thêm.
 

phuonghong1997

Yêu THVBA như điếu đổ
Đối với biến worksheet có thể gán theo codename (sheet5) hoặc theo index (sheets(5)) đều được.
Code của bạn nếu chỉ có vậy sẽ lỗi do temp=0 (biến temp được gán bằng HangB nhưng HangB lúc này chưa được gán nên vẫn bằng 0). Để khắc phục thì bạn đảo thứ tự lệnh gán temp =HangB xuống dưới lệnh gán HangB=activecell.row
Nếu code của bạn còn các lệnh thay đổi 2 biến này ở chỗ khác thì cần xem thêm.
Bro ấn F8 chạy thử từng dòng code hộ tôi cái. VBA nó mà hiểu
Mã:
Set BILL = Sheet5
thì tôi xin quỳ!!!
 

phuonghong1997

Yêu THVBA như điếu đổ
mình đã fix theo trên mà bị lỗi mới á :<
Run-time error '9':
Subscript out of range
Điều đó có nghĩa là không chỉ có một lỗi.
Đây không phải là trường mẫu giáo dạy VBA. Tôi thành thật khuyên bạn đi hỏi ở diễn đàn khác.
 

NhanSu

SMod
Thành viên BQT
Mã:
Sub a()
Dim s As Worksheet
Set s = Sheet5
MsgBox "Sheet5"
End Sub
Bạn thử chạy xem được không?
Lỗi Subscript kia là do file không có đủ 5 sheet.
 

giaiphapvba

Administrator
Thành viên BQT
Ban nick chủ topic:
Không cung cấp file demo.
Không nói rõ mình đang muốn gì, muốn làm gì, với input là gì, output muốn như thế nào.
Lỗi đang gặp là gì.
Topic này lock, không tiếp tục thảo luận! Các thành viên chấp hành!
 
Trạng thái
Không mở trả lời sau này.
Top