Hỏi về cách mở sheet mặc định (2 người xem)

Liên hệ QC

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

huuhungpc

Thành viên mới
Tham gia
20/10/06
Bài viết
46
Được thích
54
Các bác cho hỏi làm thế nào khi mở một tập tin excel thì máy tính luôn mở một sheet quy định sẵn dù cho trước đó đã lưu ở bất cứ sheet nào. (Vì hiện tại, khi lưu ở sheet nào thì khi mở, Excel sẽ mở ở sheet đó). Cảm ơn trước nhé.
 
Vào VBA, nhấp đúp vào ThisWorkBook, đặt 1 code
Private Sub Workbook_Open()
Sheet("SheetName").select
End Sub
 
Chính xác là :
Private Sub Workbook_Open()
Sheets("SheetName").select
End Sub
 
Khi tôi sử dụng đoạn code trên và đoạn code trên và đoạn code của bác vnson dùng để lock các ô sau khi nhập dữ liệu thì chương trình không hoạt động được. Cụ thể như sau:

Private Sub Workbook_Open()
Sheets("Intro").select
End Sub

Option Explicit
'
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Password toi dat la "nvson", ban co the thay doi lai
Dim rngData As Range
For Each rngData In Target.Cells
If Not IsEmpty(rngData) Then
ActiveSheet.Protect ("nvson")
Exit Sub
Else
ActiveSheet.Unprotect ("nvson")
End If
Next rngData

End Sub
Vậy xin các bác chỉ giáo đoạn code trên sai chỗ nào và phải sửa như thế nào? Cảm ơn các bác nhiều.

 
Goi HuuhungPC
Mình nghĩ bạn sai ở dòng đầu tiên
Mã:
[COLOR=black][FONT=Verdana][COLOR=black][FONT=Courier New]Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Bạn thay bằng dòng này nhé :
Mã:
[B]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/B]
TDN
[/FONT][/COLOR][/FONT][/COLOR]
 
tedaynui đã viết:
Goi HuuhungPC
Mình nghĩ bạn sai ở dòng đầu tiên
Mã:
[COLOR=black][FONT=Verdana][COLOR=black][FONT=Courier New]Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)[/FONT][/COLOR][/FONT][/COLOR]

Bạn thay bằng dòng này nhé :
Mã:
[B]Private Sub Worksheet_SelectionChange(ByVal Target As Range)[/B]
TDN

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

Cái này có nghĩa : Khi có sự thay đổi về sheet (active). Như vậy phải đặt thủ tục này trong Thisworkbook

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Cái này có nghĩa : khi thay đổi về 1 vùng (select) trong sheet đó. Do đó đặt thủ tục này chính trong sheet đó luôn.


 
Tôi thức cả đêm để mày mò. Cuối cùng cũng chạy được nhưng không biết có đúng không:
Private Sub Workbook_Open()
Sheets("Intro").select
End Sub
Private Sub Khoa_Dl()
Option Explicit
'
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Password toi dat la "nvson", ban co the thay doi lai
Dim rngData As Range
For Each rngData In Target.Cells
If Not IsEmpty(rngData) Then
ActiveSheet.Protect ("nvson")
Exit Sub
Else
ActiveSheet.Unprotect ("nvson")
End If
Next rngData
End Sub

Khi tôi viết như vậy có gì khác không? Có thực hiện được yêu cầu đưa ra là: Mỡ sheet mặc định và khóa các ô sau khi nhập liệu?

 
Bạn thử đặt lại như thế này xem sao, vì đây là hai thủ tục hoàn toàn khác nhau được đặt trong ThisWorkbook

Option Explicit

Private Sub Workbook_Open()
Sheets("Intro").select
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'Password toi dat la "nvson", ban co the thay doi lai

Dim rngData As Range
For Each rngData In Target.Cells
If Not IsEmpty(rngData) Then
ActiveSheet.Protect ("nvson")
Exit Sub
Else
ActiveSheet.Unprotect ("nvson")
End If
Next rngData
End Sub

 
Web KT

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

Back
Top Bottom