Dùng marco để tạo tham chiếu tới 1 ô xác định trong một sheet

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

Blad01

Thành viên thường trực
Tham gia
6/10/07
Bài viết
350
Được thích
28
Các bạn xem file đính kèm và bấm vào nút Tên GVCN & Lớp CN --> Hộp thoại thông tin chung xuất hiện vậy bây giờ mình muốn tên của GVCN sẽ được chuyển tới sheet TOAN tại ô C1, dữ liệu ở ô Lớp sẽ được chuyển tới ô E2 trong sheet TOAN và dữ liệu ở Năm học sẽ được chuyển tới ô Q2 trong sheet TOAN. Ngoài các sheet này mình còn rất nhiều các sheet khác nữa cũng vị trí tương tự.
Mong nhận được sự giúp đỡ của các bạn.
 
Lần chỉnh sửa cuối:
Bạn thử xem có đúng ý bạn không.
Thêm lệnh vào sub commamd...click()
Sheet4.Cells(1, 3) = Me.TextBox1
Sheet4.Cells(2, 5) = Me.TextBox4
Sheet4.Cells(2, 17) = Me.TextBox5
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn thử xem có đúng ý bạn không.
Thêm lệnh vào sub commamd...click()
Sheet4.Cells(1, 3) = Me.TextBox1
Sheet4.Cells(2, 5) = Me.TextBox4
Sheet4.Cells(2, 17) = Me.TextBox5
Cảm ơn bạn rất nhiều, Xin lỗi bạn, bạn có thể nghiên cứu giúp mình thêm một tình huống thế này nữa có được không, Mình đã thử và làm thành công bài hướng dẫn của bạn nhưng lại có 1 vấn đề phát sinh mà mình chưa biết hướng giải quyết thế nào đó là sheet TOAN mình lại cài Password (sử dụng Protext) vì vậy khi khóa sheet lại là bài hướng dẫn trên của bạn bị vô hiệu hóa ngay và chương trình báo lỗi. Vậy có cách nào vừa khóa được sheet (sử dụng chức năng Protext) mà lại vừa sử dụng được hướng dẫn trên của bạn không.
Xin được sự giúp đỡ của các bạn.
 
Upvote 0
Bạn nhấn vào Ctrl chọn lần lượt các ô C1, E2, Q2, rồi bấm phải chuột chọn Format Cells... -> chọn tab Protection, bỏ chọn mục Locked -> OK. Vậy giờ đây bạn khóa bảng tính lại thì những ô trên sẽ không bị khóa và chương trình vẫn hoạt động bình thường.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn nhấn vào Ctrl chọn lần lượt các ô C1, E2, Q2, rồi bấm phải chuột chọn Format Cells... -> chọn tab Protection, bỏ chọn mục Locked -> OK. Vậy giờ đây bạn khóa bảng tính lại thì những ô trên sẽ không bị khóa và chương trình vẫn hoạt động bình thường.
Đúng như bạn nói, nhưng ví dụ mình sử dụng một bảng dữ liệu loại khác (bảng điền hệ số các môn học chẳng hạn: Văn, toán hệ số 2; các môn khác hệ số 1) mình muốn cho hệ số của các môn học ở hộp thoại VBA tham chiếu tới những ô cụ thể trong sheet 20 chẳng hạn, sau khi tham chiếu tới các ô trong sheet 20 đó rồi thì phải khóa sheet 20 đó lại để các hệ số môn học người sử dụng không thể chỉnh sửa. Vậy là cách của bạn không giải quyết được vấn đề này.
Cảm ơn bạn.
 
Upvote 0
Nếu như vậy thì lại có một vấn đề khác. Bạn phải Unprotect rồi nhập dữ liệu vào sau đó tự động Protect trở lại. Bạn phải thêm code vào trong lệnh CommandButton Click như sau:
Mã:
[COLOR=blue]Private Sub CommandButton1_Click() [/COLOR][COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Unprotect[/COLOR] [COLOR=blue]("[/COLOR][COLOR=red]123[/COLOR][COLOR=blue]") [/COLOR][COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Cells(1, 3) = Me.TextBox1[/COLOR] [COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Cells(2, 5) = Me.TextBox4[/COLOR] [COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Cells(2, 17) = Me.TextBox5[/COLOR] [COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Protect ("[/COLOR][COLOR=red]123[/COLOR][COLOR=blue]") [/COLOR][COLOR=blue]End Sub [/COLOR]
Với: Sheet4: Là tên sheet cần khóa. 123: là pass mà bạn muốn đặt cho pass protect sheet. Chúc bạn thành công!
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu như vậy thì lại có một vấn đề khác. Bạn phải Unprotect rồi nhập dữ liệu vào sau đó tự động Protect trở lại. Bạn phải thêm code vào trong lệnh CommandButton Click như sau:
Mã:
[COLOR=blue]Private Sub CommandButton1_Click()
[/COLOR][COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Unprotect[/COLOR] [COLOR=blue]("[/COLOR][COLOR=red]123[/COLOR][COLOR=blue]")
[/COLOR][COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Cells(1, 3) = Me.TextBox1[/COLOR]
[COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Cells(2, 5) = Me.TextBox4[/COLOR]
[COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Cells(2, 17) = Me.TextBox5[/COLOR]
[COLOR=blue]Sheets("[/COLOR][COLOR=red]Sheet4[/COLOR][COLOR=blue]").Protect ("[/COLOR][COLOR=red]123[/COLOR][COLOR=blue]")
[/COLOR][COLOR=blue]End Sub
[/COLOR]
Với:
Sheet4: Là tên sheet cần khóa.
123: là pass mà bạn muốn đặt cho pass protect sheet.
Chúc bạn thành công!
Mình cũng đã thử cách này rồi mà sao không được bạn à, chương trình báo lỗi hoặc không chạy, Bạn có thể xem lại giúp mình được không.
 
Upvote 0
Bạn sửa lại:
PHP:
Private Sub CommandButton1_Click()
Sheet4.Unprotect ("123")
Sheet4.Cells(1, 3) = Me.TextBox1
Sheet4.Cells(2, 5) = Me.TextBox4
Sheet4.Cells(2, 17) = Me.TextBox5
Sheet4.Protect ("123")
End Sub
Còn không thì:
PHP:
Private Sub CommandButton1_Click()
Sheets("TOAN").Unprotect ("123")
Sheets("TOAN").Cells(1, 3) = Me.TextBox1
Sheets("TOAN").Cells(2, 5) = Me.TextBox4
Sheets("TOAN").Cells(2, 17) = Me.TextBox5
Sheets("TOAN").Protect ("123")
End Sub
Sai cách gọi tên sheet thôi mà
 
Upvote 0
Web KT

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

Back
Top Bottom