Hai đoạn code này khác nhau chỗ nào?

Liên hệ QC

phamxuyenp171

Thành viên hoạt động
Tham gia
2/4/09
Bài viết
103
Được thích
124
Tôi tạo một ComboBox mở các sheet với hai đoạn code như sau:

Private Sub ComboBox1_Change()
If ComboBox1.Value = "Toan" Then
Sheet2.Select ''Mo sheet2
End If
End Sub

Private Sub ComboBox1_Change()
If ComboBox1.Value = "Ly" Then
VatLy.Select ''Mo sheet co ten "VatLy"
End If
End Sub

Nhưng chỉ có đoạn code thứ nhất chạy được. Khi tôi đổi tên sheet ở đoạn code thứ 1 thành tên sheet như ở đoạn code thứ hai thì code không chạy được. Trong file vẫn có sheet tên là "VatLy" nhưng không chạy được. Mong được mọi người gúp đỡ. Xin cảm ơn!
 

File đính kèm

  • ViDu.xls
    30.5 KB · Đọc: 4
Lần chỉnh sửa cuối:
Tôi tạo một ComboBox mở các sheet với hai đoạn code như sau:

Private Sub ComboBox1_Change()
If ComboBox1.Value = "Toan" Then
Sheet2.Select ''Mo sheet2
End If
End Sub

Private Sub ComboBox1_Change()
If ComboBox1.Value = "Ly" Then
VatLy.Select 'Mo sheet co ten VatLy
End If
End Sub

Nhưng chỉ có đoạn code thứ nhất chạy được. Khi tôi đổi tên sheet ở đoạn code thứ 1 thành tên sheet như ở đoạn code thứ hai thì code không chạy được. Trong file vẫn có sheet tên là "VatLy" nhưng không chạy được. Mong được mọi người gúp đỡ. Xin cảm ơn!
VatLy.Select ''Mo sheet co ten "VatLy"
Theo tôi sửa thành:
Sheets("VatLy").Select
 

File đính kèm

  • ViDu(1).xls
    34.5 KB · Đọc: 4
Lần chỉnh sửa cuối:
Upvote 0
Tôi tạo một ComboBox mở các sheet với hai đoạn code như sau:

Private Sub ComboBox1_Change()
If ComboBox1.Value = "Toan" Then
Sheet2.Select ''Mo sheet2
End If
End Sub

Private Sub ComboBox1_Change()
If ComboBox1.Value = "Ly" Then
VatLy.Select ''Mo sheet co ten "VatLy"
End If
End Sub

Nhưng chỉ có đoạn code thứ nhất chạy được. Khi tôi đổi tên sheet ở đoạn code thứ 1 thành tên sheet như ở đoạn code thứ hai thì code không chạy được. Trong file vẫn có sheet tên là "VatLy" nhưng không chạy được. Mong được mọi người gúp đỡ. Xin cảm ơn!

Tên Sheet tại Sheet Tab có tên là Sheet2 và VatLy, trong VBA nó như thế này:
Sheet2 (Sheet2) và Sheet4 (VatLy)

Như vậy, khi bạn chọn Sheet2 là Sheet2.Select thì vô tình nó lại trùng tên với Sheet2 trong VBA nên nó cho kết quả đúng.

Còn khi bạn chọn VatLy.Select thì trong VBA không có tên sheet này.

Vậy sẽ phải làm sao?

Nếu bạn lấy tên Sheet trong Sheet tab thì bạn ghi là: Sheets("VatLy").Select
Còn bạn muốn lấy tên Sheet trong VBA thì bạn phải ghi là: Sheet4.Select.

Theo hiểu biết của mình, mình chỉ có thể giải thích cho bạn hiểu như vậy.
 
Upvote 0
Web KT
Back
Top Bottom