Tải bản đầy đủ (.doc) (3 trang)

Nhập dữ liệu đồng thời vào nhiều sheet

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (115.33 KB, 3 trang )

Nhập dữ liệu đồng thời vào nhiều sheet


Thông thường người dùng Excel có những dữ liệu muốn nhập vào nhiều sheet khác nhau.
Bạn có thể dùng công cụ Group các sheet lại để có thể nhập dữ liệu đồng thời. Nhưng
cũng có 1 cách khác nhanh chóng và linh hoạt hơn nếu bạn dùng vài dòng lệnh VBA.

Nhưng phải nói đến công cụ Group cái đã nhỉ? Công cụ Group dùng để nhập dữ liệu vào
nhiều sheet 1 lúc chắc có nhiều người chưa dùng đến. Nó dùng để kết nối các sheets với
nhau trong phạm vi work book.
1. Group các sheet lại bằng tay:
Để nhóm các sheet lại, các bạn chỉ việc click chọn sheet thứ nhất, nơi bạn sẽ nhập liệu từ
bàn phím vào, rồi vừa nhấn Ctrl, vừa nhấn vào tên những sheet khác mà bạn muốn nhập
liệu đồng thời. Khi bạn gõ bất kỳ cái gì vào sheet hiện hành, dữ liệu đó cũng sẽ tự động
nhập vào các sheet còn lại trong nhóm. Điệp vụ hoàn tất nhanh chóng (nghe giống 007
nhỉ).
Để thoát khỏi tình trạng group, bạn chỉ việc hoặc click chọn 1 sheet khác ngoài nhóm,
hoặc click chuột phải lên tên 1 sheet trong nhómbất kỳ, chọn Ungroup Sheets. Hoặn nếu
bạn chỉ muốn gỡ 1 trong số các sheet ra khỏi nhóm, hãy Ctrl click vào tên sheet đó.
Khi 2 hay nhiều sheet Group với nhau, trên thanh tiêu đề của Windows sẽ có chữ [Group]
(tronh ngoặc vuông). Nhìn vào đó bạn có thể biết bạn vẫn còn đang trong tình trạng
group các sheets.
Trừ khi bạn có cặp mắt sắc như chim ưng, hoặc bén như dao cạo, thường thì bạn không
để ý đến dấu hiệu này, bạn sẽ quên và không ungroup khi công việc đã xong. Chính vì
thế tôi khuyên bạn ngay khi thực hiện xong thao tác nhập liệu hàng loạt vào các sheet,
phải ungroup chúng ngay.
Dù phương pháp này là dễ nhất, nhưng có nghĩa là bạn phải nhớ và nhớ group và ungoup
khi cần, nếu không bạn sẽ vô tình ghi đè lên dữ liệu ở những sheet mà bạn không nhìn
thấy trên màn hình hiện thời. Thí dụ như bạn chỉ muốn ghi cùng lúc dữ liệu vào 1 vùng
nào đó của các bảng tính, còn ngoài vùng đó thì dữ liệu các sheet phải khác nhau. Thế
nhưng khi các sheet đã group rồi thì nó có thèm quan tâm bạn đang nhập liệu ở vùng nào


đâu?
2. Group các sheet lại 1 cách tự động:
Bạn có thể giải quyết vấn đề trên bằng cách dùng 1 đoạn code VBA hết sức đơn giản. Để
đoạn code làm việc được, nó phải được đặt trong các sự kiện của riêng sheet nào bạn
muốn. Để vào trang soạn thảo code của sheet nào, thì click phải chuột vào tên sheet đó và
chọn View Code.
Bạn có thể chọn 1 trong các sự kiện của sheet, những sự kiện chỉ liên quan đến sheet đó
như đổi ô chọn, thay đổi nội dung 1 ô, kích hoạt sheet, thoát khỏi sheet, … để thực thi
đoạn code VBA của mình.
Thường thì bạn được đưa thẳng đến trang soạn thảo code riêng của sheet nếu bạn chọn
View Code như trên hướng dẫn. Bạn có thể kiểm tra lại quả thực nó thuộc về sheet bạn
chọn hay không bằng cách nhìn vào cửa sổ VBA Project bên trái, nếu bạn thấy dạng thư
mục This Workbook – Sheetname và 1 sheet đang chọn thì đúng. nếu không bạn phải tìm
đúng sheet bạn cần và doubled click nó.
Trước tiên bạn phải đặt name cho vùng ô bạn muốn nhập dữ liệu trùng trong các sheet,
giả sử là “MyRange”.
Sau đó gõ đoạn code này vào khung soạn thảo bên phải:
PHP Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("MyRange"), Target) Is Nothing Then
Sheets(Array("Sheet5", "Sheet3", "Sheet1")).Select
Else
Me.Select
End If
End Sub
Trong đoạn code trên, sheet5 được ghi đầu tiên trong mảng Array, vì bạn muốn nó là
sheet mà bạn sẽ gõ dữ liệu nhập vào. Bạn có thể chọn những sheet khác để group chúng
lại bên dưới sheet5. Sau khi gõ code xong, hoặc nhấn nút View Object, hoặc nhấn nút
View Microsoft Excel, hoặc nhấn Alt- Q, Alt-F11 hoặc đóng hẳn cửa sổ VBA trở về màn
hình Excel. Lưu bảng tính lại.

Cần nhắc lại rằng đoạn code trên phải nằm trong sheet được khai báo đầu tiên của Array,
là sheet mà bạn sẽ nhập dữ liệu từ bàn phím.
Khi bạn đã hoàn tất, mỗi khi bạn click chọn 1 ô nào đó trong sheet5, đoạn code sẽ kiểm
tra xem ô bạn chọn có nằm trong vùng đã đặt tên “MyRange” không. Nếu đúng, code sẽ
Group các sheet lại với nhau để bạn nhập dữ liệu hàng loạt sheets. Nếu không phải, nó
ungroup chúng ra bằng cách đơn giản là kích hoạt sheet hiện hành. Dùng đoạn code trên
sẽ tiện lợi ở chỗ nó giải phóng bạn khỏi cái việc phải nhớ Group khi bắt đầu và UnGroup
khi kết thúc nhập liệu trong vùng chọn.
Bây giờ nếu bạn muốn những dữ liệu như nhau được nhập vào các sheet chọn, nhưng ở
những vị trí khác nhau, hãy dùng đoạn code khác:
PHP Code:
Private Sub worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("MyRange"), Target) Is Nothing Then
With Range("MyRange")
.Copy Destination:=Sheets("Sheet3").Range("A1")
.Copy Destination:=Sheets("Sheet1").Range("D10")
End With
End If
End Sub
Đoạn code này cũng phải được đặt trong khung soạn thảo của riêng sheet5.

×