Tại sheet "NHAPLIEU", nếu ô C5=1 thì không cho paste vào sheet "NHAPLIEU", nếu khác 1 thì cho paste
If C5.value = 1 then exit sub
Nhỡ paste tay thì sao nhỉ.Phải chăng là thế này?Mã:If C5.value = 1 then exit sub
Thi đó. cứ viết như vậy thôi. Chứ code có viết được trên hình ảnh đâu.Ý tôi muốn như trên đó bạn!
Cái đoạn này chắc phát sinh sau hỏi sau. Xử lí cái 1 đãNhỡ paste tay thì sao nhỉ.
Copy code vào module sheet NhapLieuCác bạn giúp code như sau
Tại sheet "NHAPLIEU", nếu ô C5=1 thì không cho paste vào sheet "NHAPLIEU", nếu khác 1 thì cho paste
Xin cảm ơn các bạn!
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lastAction As String
Application.EnableEvents = False
lastAction = Application.CommandBars("Standard").Controls("&Undo").List(1)
If Left(lastAction, 5) = "Paste" Then
If Range("C5") = 1 Then
MsgBox "Không duoc paste"
Application.Undo
End If
End If
Application.EnableEvents = True
End Sub
Thử nó xem:Tại sheet "NHAPLIEU", nếu ô C5=1 thì không cho paste vào sheet "NHAPLIEU", nếu khác 1 thì cho paste
Private Sub Worksheet_Activate()
If Range("C5").Value <> 1 Then
Application.ScreenUpdating = True
Else
Application.Calculation = xlCalculationAutomatic
End If
End Sub
Giúp xong thì thớt chạy mất tiêu.Thử nó xem:
Mã:Private Sub Worksheet_Activate() If Range("C5").Value <> 1 Then Application.ScreenUpdating = True Else Application.Calculation = xlCalculationAutomatic End If End Sub
Hihi. Em trả lời #8 thôi nhé. Bài #2 lúc ấy chưa có file nên em trả lời mò ấyGiúp xong thì thớt chạy mất tiêu.
Bạn cho mình hỏi, theo mình hiểu là không cho paste vào sheet NhapLieu khi ô C5 ở sheet NhapLieu =1.
Mà thấy bài #2 với #8 code không đề cập gì đến vụ này?
Application.Calculation = xlCalculationAutomatic
Bạn thử insert một module, chèn code:Hihi. Em trả lời #8 thôi nhé. Bài #2 lúc ấy chưa có file nên em trả lời mò ấy
Em chỉ biết sub trên được thả vào sheet NhapLieu
Do trong file của thớt có sẵn đoạn code này:
Thấy nó không cho paste thật ( cái này em cũng không hiểu nguyên lý vận hành. Đang tìm hiểu anh ạ) và em chỉ có thêm cái cập nhật màn hình thì lại OK. Cảm giác nó lạ lạ thế nào ấyMã:Application.Calculation = xlCalculationAutomatic
Sub abc()
Application.Calculation = xlCalculationAutomatic
End Sub
Hihi. Cái câu lệnh đó là để làm gì thế anh nhỉ? Thấy thi thoảng cũng dùng nó. Nếu thế thì nó bằng với câu lệnh này nhỉ?Xong bạn bấm copy một vùng nào đó trên sheet, rồi chạy code đó nghiệm xem. (Chạy làm sao để nhìn được cái vùng vừa bấm copy đó nhé)
Application.CutCopyMode = False
Nếu bạn có một file hàng tá công thức, bạn đưa giá trị xuống ô nhiều lần mà đầu code không đưa về tính toán thủ công thì chờ code chạy hơi lâu á, dòng đó là để bật lại chế độ tính toán tự động cuối code thôiHihi. Cái câu lệnh đó là để làm gì thế anh nhỉ? Thấy thi thoảng cũng dùng nó. Nếu thế thì nó bằng với câu lệnh này nhỉ?Mã:Application.CutCopyMode = False
Dạ. hình dung ra rồi anh ạ. Có điều thắc mắc xíu là sao việc cập nhật chế độ tính toán lại nó lại làm tắt luôn cái ghi nhận copy trước đó nhỉNếu bạn có một file hàng tá công thức, bạn đưa giá trị xuống ô nhiều lần mà đầu code không đưa về tính toán thủ công thì chờ code chạy hơi lâu á, dòng đó là để bật lại chế độ tính toán tự động cuối code thôi