Giúp chỉ chỗ sai 3 dòng code

Liên hệ QC

maytinhvp01

Thành viên thường trực
Tham gia
27/7/13
Bài viết
390
Được thích
179
Public Sub H()
Worksheets("sheet1").Range("A1") = WorksheetFunction.Max("B2:C10")
End Sub


Xin hỏi dòng code của em sai cho nào mà em không chạy được ah
 
Public Sub H()
Worksheets("sheet1").Range("A1") = Application.WorksheetFunction.Max([B2:C10])
End Sub
 
Upvote 0
= WorksheetFunction.Max("B2:C10")

1. Phải là Range("B2:C10") hoặc như thanhsangnguyen: [B2:C10]
2. Nên là Sheets("Sheet1").Range("B2:C10") hoặc Sheets("Sheet1").[B2:C10] để xác định đúng sheet nguồn. Nếu không đang đứng sheet2 mà chạy code nó sẽ lấy B2:C10 của sheet2
 
Upvote 0
Mình tìm trên diễn đàn không thấy có. Lại làm phiền các anh em hộ mình ý nghĩa của " unprotect" và chức năng của nó, sử dụng ra sao với được không ạ?
 
Upvote 0
Mình tìm trên diễn đàn không thấy có. Lại làm phiền các anh em hộ mình ý nghĩa của " unprotect" và chức năng của nó, sử dụng ra sao với được không ạ?
Cụ thể hơn đi bạn, bạn đang muốn nói đến unprotect sheet trong excel hay là unprotect cái gì???
 
Upvote 0
Cụ thể hơn đi bạn, bạn đang muốn nói đến unprotect sheet trong excel hay là unprotect cái gì???
Mã:
Private Sub CommandButton1_Click()
[COLOR=#ff0000]Unprotect[/COLOR]
With Sheets("Form")
If [A1] < Sheets("Data").[A1000].End(xlUp) Then
    [A1] = [A1] + 1
    Else: [A1] = 1
    End If
    [E8] = WorksheetFunction.VLookup([A1], Sheets("Data").Range("A7:B20"), 2, False)
    End With
Protect
End Sub[CODE]
mình có dòng code này đang tìm hiểu, vì không biết nên cũng chưa biết hỏi từ đâu?
 
Upvote 0
Code này là tự bạn viết??? Hình như nó báo đỏ chỗ Unprotect, bạn không hiểu vì sao??? Và thằng With sheets("Form")....End With không có tác dụng gì trong đoạn code trên thì phải???
 
Upvote 0
Mã:
Private Sub CommandButton1_Click()
[COLOR=#ff0000]Unprotect[/COLOR]
With Sheets("Form")
If [A1] < Sheets("Data").[A1000].End(xlUp) Then
    [A1] = [A1] + 1
    Else: [A1] = 1
    End If
    [E8] = WorksheetFunction.VLookup([A1], Sheets("Data").Range("A7:B20"), 2, False)
    End With
Protect
End Sub[CODE]
mình có dòng code này đang tìm hiểu, vì không biết nên cũng chưa biết hỏi từ đâu?[/QUOTE]

*Unprotect ở trên có thể là 1 thủ tục ( chương trình con ) nào đó --> có thể là sub phá khoá unprotect worksheet chẳng hạn !
 
Upvote 0
Code này là tự bạn viết??? Hình như nó báo đỏ chỗ Unprotect, bạn không hiểu vì sao??? Và thằng With sheets("Form")....End With không có tác dụng gì trong đoạn code trên thì phải???

Mình copy đoạn code của người khác đấy. Chỗ bôi đỏ là mình bôi để nhấn mạnh chỗ hỏi. Mình muốn tìm hiểu về "unprotect"
 
Upvote 0
Mã:
Private Sub CommandButton1_Click()
[COLOR=#ff0000]Unprotect[/COLOR]
With Sheets("Form")
If [A1] < Sheets("Data").[A1000].End(xlUp) Then
    [A1] = [A1] + 1
    Else: [A1] = 1
    End If
    [E8] = WorksheetFunction.VLookup([A1], Sheets("Data").Range("A7:B20"), 2, False)
    End With
Protect
End Sub[CODE]
mình có dòng code này đang tìm hiểu, vì không biết nên cũng chưa biết hỏi từ đâu?[/QUOTE]
Nó [B]unprotect[/B] vì code đã [B]protect[/B], tức là vì sheet đã bị khóa ([B]protect)[/B] nên trước khi muốn "chọt chọt" cái gì vào sheet đó thì phải mở khóa ([B]unprotect)[/B], "chọt chọt" xong rồi, trước khi thoát Sub lại khóa vào_ cái đoạn [B]protect [/B]ở dòng kế cuối í
Thân
 
Upvote 0
unprotect vì code đã protect, tức là vì sheet đã bị khóa (protect) nên trước khi muốn "chọt chọt" cái gì vào sheet đó thì phải mở khóa (unprotect), "chọt chọt" xong rồi, trước khi thoát Sub lại khóa vào_ cái đoạn protect ở dòng kế cuối í
Thân
Bác Cò cho bé Còi xin 1 cái file ví dụ về thằng Unprotect đứng một mình như thế này được không ạ, bé Còi chưa gặp trường hợp nào như thế này ạ, chạy thử code thấy nó báo đỏ đúng chỗ Unprotect đó (Sub or Function not defined) cháu mới chỉ biết Unprotect Method qua cú pháp expression.Unprotect(Password) ạ, hix hix

Cảm ơn bác Cò!
 
Upvote 0
Bác Cò cho bé Còi xin 1 cái file ví dụ về thằng Unprotect đứng một mình như thế này được không ạ, bé Còi chưa gặp trường hợp nào như thế này ạ, chạy thử code thấy nó báo đỏ đúng chỗ Unprotect đó (Sub or Function not defined) cháu mới chỉ biết Unprotect Method qua cú pháp expression.Unprotect(Password) ạ, hix hix

Cảm ơn bác Cò!
Thì Bé Còi cứ Protect sheet đi, pass là "hổng quánh cái gì vào đó hết" thử xem sao
Code báo lỗi có thể bạn í copy thiếu, phải khai báo tên sheet hoặc sheet hiện hành (ActiveSheet)
Thí dụ thế này
Bé Còi thử xem nó có khóa hông ???
Híc
 
Upvote 0
Thì Bé Còi cứ Protect sheet đi, pass là "hổng quánh cái gì vào đó hết" thử xem sao
Code báo lỗi có thể bạn í copy thiếu, phải khai báo tên sheet hoặc sheet hiện hành (ActiveSheet)
Thí dụ thế này

Bé Còi thử xem nó có khóa hông ???
Híc

Hic
Chả lẽ copy thiếu ActiveSheet.Unprotect và cả ActiveSheet.Protect? Copy cách nào mà thiếu 2 chữ ở 2 chỗ giữa giữa ...

Chỉ có thể giải thích là copy nhằm 1 code hỏng chạy được.
 
Upvote 0
Hic
Chả lẽ copy thiếu ActiveSheet.Unprotect và cả ActiveSheet.Protect? Copy cách nào mà thiếu 2 chữ ở 2 chỗ giữa giữa ...

Chỉ có thể giải thích là copy nhằm 1 code hỏng chạy được.
Hihi, khả năng là code không chạy & cũng có thể có khả năng thứ hai là mất một thằng With & End With bên ngoài nữa hông chừng
Đại khái là giải thích cái thằng UnProtect thôi
Còn chai "dzụ", hôm nào làm cái lẩu ở nhà Thầy đi Thầy
Híc
 
Upvote 0
Thì Bé Còi cứ Protect sheet đi, pass là "hổng quánh cái gì vào đó hết" thử xem sao
Code báo lỗi có thể bạn í copy thiếu, phải khai báo tên sheet hoặc sheet hiện hành (ActiveSheet)
Thí dụ thế này

Bé Còi thử xem nó có khóa hông ???
Híc
Tại bé Còi thấy ông Unprotect đứng một mình mà không có cái Expression ở đằng trước nên mới thắc mắc hình như bạn ấy tự viết code và bị báo đỏ chỗ đó mà không hiểu vì sao? Chứ thêm cái Activesheet trước Unprotect hay Protect thì bé Còi khỏi bàn vì đúng cú pháp rồi... hix hix hix!
@ Thầy Ptm0412 : Trò cũng nghĩ là thiếu thiếu cái gì đó nên mới hỏi lại vậy, chắc bạn ý copy thiếu, hix. Thấy nguyên cả cụm With sheets("Form")....End with cũng dư thừa, chắc lại copy thiếu cả đống dấu chấm nữa, khổ thân With....End with thật!
 
Upvote 0
Code bên trong with sheets("Form")....End with đừng quan tâm, vì nó liên quan đến 1 file cụ thể nào đó có chứa sheet tên "form". Mà đoạn code bên trong đó cũng hỏng chạy, hoặc chạy bậy, vì toàn uýnh vô activesheet, hỏng liên quan gì đến sheet "form", vì hỏng có mấy dấu chấm chấm.
 
Upvote 0
Code bên trong with sheets("Form")....End with đừng quan tâm, vì nó liên quan đến 1 file cụ thể nào đó có chứa sheet tên "form". Mà đoạn code bên trong đó cũng hỏng chạy, hoặc chạy bậy, vì toàn uýnh vô activesheet, hỏng liên quan gì đến sheet "form", vì hỏng có mấy dấu chấm chấm.
Vâng! Tại trò đọc code hỏng hiểu chỗ đó để làm gì nên mới hỏi lại mà, trò tạo thử file theo chỉ dẫn code thì báo đỏ lòe, hix. Bạn ấy bỏ chúng ta mất tiêu rồi, hehe, hy vọng ngày mai được ngó cái file thật có cái đoạn code kia, biết đâu lại thấy cái gì đó hay hay hì hì hì!
 
Upvote 0
Tại bé Còi thấy ông Unprotect đứng một mình mà không có cái Expression ở đằng trước nên mới thắc mắc hình như bạn ấy tự viết code và bị báo đỏ chỗ đó mà không hiểu vì sao? Chứ thêm cái Activesheet trước Unprotect hay Protect thì bé Còi khỏi bàn vì đúng cú pháp rồi... hix hix hix!

Bạn đặt code cho trước ở chỗ nào mà thấy lỗi? Nhìn dòng đầu là

Mã:
[COLOR=#ff0000]Private Sub CommandButton1_Click()[/COLOR]

thì có thể đoán là code 99,99999% không nằm trong Module. Và 99,99999% là nằm trong code của Sheet. Vậy thì cần gì cái gọi là Expression nữa? UnProtect/Protect là gọi method của sheet mà code đang "chạy" đây.

Nếu code nằm trong vd. sheet1 thì bạn có thể dùng Sheet1.Unprotect, Me.Unprotect, mà cũng có thể chỉ "trần trụi" Unprotect

Mà Password là optional. Nếu người ta Unprotect/Protect nhưng không dùng mật khẩu thì quên luôn vụ nhập mật khẩu đi.

Bác Cò cho bé Còi xin 1 cái file ví dụ về thằng Unprotect đứng một mình như thế này được không ạ, bé Còi chưa gặp trường hợp nào như thế này ạ, chạy thử code thấy nó báo đỏ đúng chỗ Unprotect đó (Sub or Function not defined) cháu mới chỉ biết

1. Trên Sheet1 (cũng chả cần Protect trước làm gì) đặt 1 CommandButton. Phải chuột và chọn "View code"

2. Nhập code như sau
Mã:
Private Sub CommandButton1_Click()
    Unprotect
    MsgBox "hichic"
    Protect
End Sub

3. click mỏi tay thì thôi.
 
Upvote 0
Vâng! Tại trò đọc code hỏng hiểu chỗ đó để làm gì nên mới hỏi lại mà, trò tạo thử file theo chỉ dẫn code thì báo đỏ lòe, hix. Bạn ấy bỏ chúng ta mất tiêu rồi, hehe, hy vọng ngày mai được ngó cái file thật có cái đoạn code kia, biết đâu lại thấy cái gì đó hay hay hì hì hì!
Nguyên văn file mình sưu tầm được trong diễn đàn
Mã:
Private Sub CommandButton1_Click()
Unprotect
With Sheets("Form")
If [A1] < Sheets("Data").[A1000].End(xlUp) Then
    [A1] = [A1] + 1
    Else: [A1] = 1
    End If
    [E8] = WorksheetFunction.VLookup([A1], Sheets("Data").Range("A7:B20"), 2, False)
    End With
Protect
End Sub
 
Upvote 0
Bạn đặt code cho trước ở chỗ nào mà thấy lỗi? Nhìn dòng đầu là

Mã:
[COLOR=#ff0000]Private Sub CommandButton1_Click()[/COLOR]

thì có thể đoán là code 99,99999% không nằm trong Module. Và 99,99999% là nằm trong code của Sheet. Vậy thì cần gì cái gọi là Expression nữa? UnProtect/Protect là gọi method của sheet mà code đang "chạy" đây.

Nếu code nằm trong vd. sheet1 thì bạn có thể dùng Sheet1.Unprotect, Me.Unprotect, mà cũng có thể chỉ "trần trụi" Unprotect

Mà Password là optional. Nếu người ta Unprotect/Protect nhưng không dùng mật khẩu thì quên luôn vụ nhập mật khẩu đi.



1. Trên Sheet1 (cũng chả cần Protect trước làm gì) đặt 1 CommandButton. Phải chuột và chọn "View code"

2. Nhập code như sau
Mã:
Private Sub CommandButton1_Click()
    Unprotect
    MsgBox "hichic"
    Protect
End Sub

3. click mỏi tay thì thôi.

file lớn hơn dung lượng tải lên nên không đưa lên được. đúng là code viết trong sheet tên là form
 
Upvote 0
Web KT
Back
Top Bottom