Em dán đúng nơi rồi nhưng khi chạy thì không được ạ. Khi chạy F8 nó không báo lỗi nhưng cũng không thực thi lệnh copy và dán mới. còn khi "I5" có giá trị thay đổi thì code cũng không hoạt động ạ.
Em dán đúng nơi rồi nhưng khi chạy thì không được ạ. Khi chạy F8 nó không báo lỗi nhưng cũng không thực thi lệnh copy và dán mới. còn khi "I5" có giá trị thay đổi thì code cũng không hoạt động ạ.
Em lại muốn không cần nhập dữ liệu vào ô "I5" cơ bác. Nếu nhập dữ liệu trực tiếp vào "I5" thì không có gì để nói. Trong file ô "i5" em để công thức báo số tháng khi tháng thay đổi thì sẽ tự động chạy macro ấy ạ. Nếu làm được code này thì ứng dụng vào nhiều cái hay hơn. Em cũng có thử mấy code có code thì chạy được nhưng không tự dừng.
Em lại muốn không cần nhập dữ liệu vào ô "I5" cơ bác. Nếu nhập dữ liệu trực tiếp vào "I5" thì không có gì để nói. Trong file ô "i5" em để công thức báo số tháng khi tháng thay đổi thì sẽ tự động chạy macro ấy ạ. Nếu làm được code này thì ứng dụng vào nhiều cái hay hơn. Em cũng có thử mấy code có code thì chạy được nhưng không tự dừng.
Bài đã được tự động gộp:
Trong file ô "I5" của em là tháng tự thay đổi. Em muốn khi tháng thay đổi thì sẽ chạy code làm mới ấy ạ
Có ba chuyện đọc code là thấy ngay:
1. Code này không lặp vô tận mới là chuyện lạ: Lúc nào mà chẳng True?
Mã:
Set Xrg = Range("I5")
If Not Intersect(Xrg, Range("I5")) Is Nothing Then
2. Sự kiện Change của sheet chạy dựa trên sự thay đổi của target, nhưng không chạy khi giá trị target bị thay đổi bởi công thức. Chỉ chạy khi sửa trực tiếp vào target.
3. Sự kiện Calculate không có tham số target, bất cứ khi nào sheet được tính toán lại đều chạy. Hễ có thay đổi ở bất cứ ô nào, range nào, hễ có ít nhất 1 công thức trên sheet là code chạy. Ngoài ra khi mở file cũng chạy, khi lưu cũng chạy và khi đóng cũng chạy.
Nếu 3 việc này không biết thì có file cũng như không.
Có ba chuyện đọc code là thấy ngay:
1. Code này không lặp vô tận mới là chuyện lạ: Lúc nào mà chẳng True?
Mã:
Set Xrg = Range("I5")
If Not Intersect(Xrg, Range("I5")) Is Nothing Then
2. Sự kiện Change của sheet chạy dựa trên sự thay đổi của target, nhưng không chạy khi giá trị target bị thay đổi bởi công thức. Chỉ chạy khi sửa trực tiếp vào target.
3. Sự kiện Calculate không có tham số target, bất cứ khi nào sheet được tính toán lại đều chạy. Hễ có thay đổi ở bất cứ ô nào, range nào, hễ có ít nhất 1 công thức trên sheet là code chạy. Ngoài ra khi mở file cũng chạy, khi lưu cũng chạy và khi đóng cũng chạy.
Nếu 3 việc này không biết thì có file cũng như không.
Tôi giải thích đúng chỗ "không rõ" rồi.
Tại sao lặp vô tận: đừng dùng câu lệnh đó nữa
Tại sao chạy hoài: Đừng dùng calculate nữa
Tại sao phải sửa tay mới chạy, thay đổi bằng công thức mới chạy: Thì đừng dùng ô chứa công thức làm target nữa
Tôi giải thích đúng chỗ "không rõ" rồi.
Tại sao lặp vô tận: đừng dùng câu lệnh đó nữa
Tại sao chạy hoài: Đừng dùng calculate nữa
Tại sao phải sửa tay mới chạy, thay đổi bằng công thức mới chạy: Thì đừng dùng ô chứa công thức làm target nữa
Cháu cũng từng góp ý với thớt thay cách khác. Thới nói thớt lười. Đó là lý do có vẻ sao sao ấy. Có lẽ để thớt từ tìm cách có khi hay hơn là cứ cố làm những thứ mà không kiểm soát được chính nó. Còn nếu đã không biết nhiều mà lại muốn dùng cách không thể kiểm soát được thì có vẻ hơi mạo hiểm
Code này test kỹ chưa? Nhúc nhích 1 cái là chạy "LAM_MOI" copy dán. Chưa nói đến việc code đã chạy qua sheet khác copy dán ở sheet đó rồi, cels.Select không bị mắng mới là lạ.
Code này test kỹ chưa? Nhúc nhích 1 cái là chạy "LAM_MOI" copy dán. Chưa nói đến việc code đã chạy qua sheet khác copy dán ở sheet đó rồi, cels.Select không bị mắng mới là lạ.
Cứ 1 lệnh là chạy bác ạ, nên em mới Select cels, không thì nó chọn hết range paste, nhưng được cái là chạy liên tục, không phải lăn tăn change hay không. Chớp chớp tí nhưng chắc không sao.
Tác giả cần thì chắc biết sửa chỗ này bác ạ, em đào mộ tí ra ngay. Mấy cái auto này với em cứ loạn hết cả lên. Món này cũng ít bài thảo luận bác ạ.
Lúc đầu em còn set target = sheet1. Range("i5") thế mới máu, mà chưa thấy ai làm kiểu đấy.
Cứ 1 lệnh là chạy bác ạ, nên em mới Select cels, không thì nó chọn hết range paste, nhưng được cái là chạy liên tục, không phải lăn tăn change hay không. Chớp chớp tí nhưng chắc không sao.
Tác giả cần thì chắc biết sửa chỗ này bác ạ, em đào mộ tí ra ngay. Mấy cái auto này với em cứ loạn hết cả lên. Món này cũng ít bài thảo luận bác ạ.
Lúc đầu em còn set target = sheet1. Range("i5") thế mới máu, mà chưa thấy ai làm kiểu đấy.
Code vẫn chưa đúng với mục đích của em. ý định của em là chỉ khi ô "i5" công thức thay đổi sẽ làm mới. nhưng code này thì bất cứ em chỉnh sửa ô nào trên trang tính thì cũng làm mới mất rồi
Cứ 1 lệnh là chạy bác ạ, nên em mới Select cels, không thì nó chọn hết range paste, nhưng được cái là chạy liên tục, không phải lăn tăn change hay không. Chớp chớp tí nhưng chắc không sao.
Tác giả cần thì chắc biết sửa chỗ này bác ạ, em đào mộ tí ra ngay. Mấy cái auto này với em cứ loạn hết cả lên. Món này cũng ít bài thảo luận bác ạ.
Lúc đầu em còn set target = sheet1. Range("i5") thế mới máu, mà chưa thấy ai làm kiểu đấy.
Em làm được rồi ạ. em thêm vòng lặp mệnh đề điều kiện vào macro"LAM_MOI" trong macro này em thêm một bước copy ô "I5" và paste vào một ô khác để có dữ liệu tham chiếu. bây giờ bất cứ khi nào trong sheet 1 thay đổi thì code đều chạy. nếu giá trị ô "I5" khác với ô tham chiếu thì sẽ chạy macro "LAM_MOI" còn không thì else> Exit sub. em rất cảm ơn các bác đã giúp em hoàn thành bài toán khó này của em ạ. cảm ơn rất nhiều.
Em làm được rồi ạ. em thêm vòng lặp mệnh đề điều kiện vào macro"LAM_MOI" trong macro này em thêm một bước copy ô "I5" và paste vào một ô khác để có dữ liệu tham chiếu. bây giờ bất cứ khi nào trong sheet 1 thay đổi thì code đều chạy. nếu giá trị ô "I5" khác với ô tham chiếu thì sẽ chạy macro "LAM_MOI" còn không thì else> Exit sub. em rất cảm ơn các bác đã giúp em hoàn thành bài toán khó này của em ạ. cảm ơn rất nhiều.