Lấy nội dung của Sheet... (2 người xem)

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

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

dodokg

Thành viên mới
Tham gia
23/10/08
Bài viết
16
Được thích
2
Chào các thành viện!!!
Tôi đang sử dụng một file excel để nhập điểm cho học sinh gồm có nhiều sheet.
Bây giờ tôi không biết dùng hàm gì (hoặc viết code VBE ra sao) để khi gõ dữ liệu ở sheet1 thì nội dung của sheet1 sẽ tự động cập nhật ở sheet2.
Mong được sự giúp đỡ.....
 
Chào các thành viện!!!
Tôi đang sử dụng một file excel để nhập điểm cho học sinh gồm có nhiều sheet.
Bây giờ tôi không biết dùng hàm gì (hoặc viết code VBE ra sao) để khi gõ dữ liệu ở sheet1 thì nội dung của sheet1 sẽ tự động cập nhật ở sheet2.
Mong được sự giúp đỡ.....

Câu hỏi của bạn chung chung quá nên khó trả lời.
Bạn gửi file lên, ghi rõ sheet1 có dữ liệu gì, nhập ra sao, sheet 2 sẽ cập nhật như thế nào. Có file minh họa sẽ dễ dàng trả lời cho bạn hơn.
 
Đơn giản là dùng link (Ô trên Sh2=Ô trên Sh1). Ngoài ra, bạn xem các hàm thuộc nhóm tìm kiếm, tham chiếu Reference để tham khảo và vận dụng cho mục đích của mình. Đúng như Hoang Danh nói, bạn hỏi vậy thì sao trả lời được. Ví dụ khi nhập em A 10 điểm toán, tại sh2 bạn muốn lấy điểm bq thì khác , liệt kê điểm em A lại khác.
 
Câu hỏi của bạn chung chung quá nên khó trả lời.
Bạn gửi file lên, ghi rõ sheet1 có dữ liệu gì, nhập ra sao, sheet 2 sẽ cập nhật như thế nào. Có file minh họa sẽ dễ dàng trả lời cho bạn hơn.

Ah!
Ý em như thế này bác ạ! thay vì copy nội dung từ sheet1 qua sheet2 (chọn toàn bộ sheet1 -->copy sang sheet2) thì khi sửa nội dung của sheet thì nội dung sheet2 vẫn không đổi => vậy muốn sửa ở sheet1 thì sheet2 tự động cập nhật nội dung của sheet1
(em muốn sheet1 và sheet2 nội dung giống nhau hoàn toàn)
 
Đoán mò nha! Bạn nhấn phải chuột vào tên Sheet1 -> nhấp vào View Code => Khi cửa sổ mới hiện ra bạn copy đoạn code dưới vào trong. Rồi quay lại Sheet1 nhập thử vài số liệu xem.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range) Sheet2.Cells(Target.Row, Target.Column) = Target End Sub
Thân.
 
Lần chỉnh sửa cuối:
Ah!
Ý em như thế này bác ạ! thay vì copy nội dung từ sheet1 qua sheet2 (chọn toàn bộ sheet1 -->copy sang sheet2) thì khi sửa nội dung của sheet thì nội dung sheet2 vẫn không đổi => vậy muốn sửa ở sheet1 thì sheet2 tự động cập nhật nội dung của sheet1
(em muốn sheet1 và sheet2 nội dung giống nhau hoàn toàn)
Cách thì thiếu gì! Ví dụ:
With Sheet1.UsedRange
Sheet2.UsedRange.Resize(.Rows.Count, .Columns.Count) = .Value
End With
Đưa vào sự kiện BeforeClose chẳng hạn! Code chỉ làm 1 lần duy nhất khi bạn đóng file
nhưng.. vấn đề là làm thế để được cái gì?
Lý nào lại tạo ra 1 bản copy để... nhìn chơi
 
Đoán mò nha! Bạn nhấn phải chuột vào tên Sheet1 -> nhấp vào View Code => Khi cửa sổ mới hiện ra bạn copy đoạn code dưới vào trong. Rồi quay lại Sheet1 nhập thử vài số liệu xem.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheet2.Cells(Target.Row, Target.Column) = Target
End Sub
Thân.

Cảm ơn pikachu nhé!
Nhưng tôi làm thử mà nó không chạy.....
 
Cách thì thiếu gì! Ví dụ:

Đưa vào sự kiện BeforeClose chẳng hạn! Code chỉ làm 1 lần duy nhất khi bạn đóng file
nhưng.. vấn đề là làm thế để được cái gì?
Lý nào lại tạo ra 1 bản copy để... nhìn chơi

Bác ndu... này!
Bác chỉ thế thì ai mà biết làm, bác chỉ rõ hơn một chút đuợc không?
dán code vào đâu (sheet1 hay sheet2...)
Cảm ơn!!
 
Bác ndu... này!
Bác chỉ thế thì ai mà biết làm, bác chỉ rõ hơn một chút đuợc không?
dán code vào đâu (sheet1 hay sheet2...)
Cảm ơn!!
Dán vào ThisWorkbook ấy!
Ví dụ:
PHP:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Sheet2.UsedRange.Clear
  With Sheet1.UsedRange
    Sheet2.UsedRange.Resize(.Rows.Count, .Columns.Count) = .Value
  End With
  ThisWorkbook.Save: Application.Quit
End Sub
Cứ đóng file thoải mái , lần sau mở lên sẽ thấy nó cập nhật đầy đủ (code này chỉ làm việc 1 lần duy nhất khi bạn đóng file mà thôi)
Còn có thể cải tiến thêm nữa tùy sở thích
 
Lần chỉnh sửa cuối:
Không đúng có thể bạn đặt code không đúng vị trí. Hoặc có 1 cách đơn giản hơn để dữ liệu của sheet này vào được Sheet kia là Group Sheet. Bạn chỉ việc giữ phím Shift và nhấp vào 2 tên Sheet lên tục để chúng sáng lên. Và bạn nhập dữ liệu ở sheet này thì sheet sẽ xuất hiện dữ liệu như mong muốn. Chúc thành công. Thân.
 
Lần chỉnh sửa cuối:
Đoán mò nha! Bạn nhấn phải chuột vào tên Sheet1 -> nhấp vào View Code => Khi cửa sổ mới hiện ra bạn copy đoạn code dưới vào trong. Rồi quay lại Sheet1 nhập thử vài số liệu xem.
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
Sheet2.Cells(Target.Row, Target.Column) = Target
End Sub
Thân.
Bạn xem tôi thí nghiệm nhé:
- Tại sheet 1, gõ số 1 vào A1, gõ số 2 vào A2
- Qua sheet 2 xem thử, thấy nó đã cập nhật: OK
- Trở lại sheet 1, quét chọn A1:A2, kéo fill đến A10
- Qua sheet 2, chả thấy nó cập nhật gì cả
hi... hi...
Vậy có thể sửa lại code trên như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  Sheet2.Range(Target.Address).Value = Target.Value
End Sub
Làm lại thí nghiệm, thấy mọi thứ đều ổn, kể cả khi ta copy 1 vùng rồi paste sang nơi khác
-----------------
Tuy nhiên.... thí nghiệm tiếp (cột A vẩn để nguyên)
- Tại sheet 1, gõ số 1 vào B1, gõ số 2 vào B2
- Qua sheet 2 xem thử, thấy nó đã cập nhật: OK
- Trở lại sheet 1, quét chọn B1:B2, kéo fill đến B10
- Chọn cột ADelete
- Qua sheet 2 xem thử, thấy sai bét
Vậy bạn giãi quyết vụ này sao đây?
 
Web KT

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

Back
Top Bottom