Một kiểu Highlight đơn giản (2 người xem)

Liên hệ QC

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

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,912
Hảy mở file, click chọn bất cứ cell nào trong bảng dử liệu rồi bấm F9... nguyên dòng ấy sẽ dc Highlight... Khá thú vị là file này chẳng dùng macro... (ăn cắp công nghệ của file về biểu đồ động)...
Các bạn thử xem!
ANH TUẤN
 

File đính kèm

Ở sheet dữ liệu em thêm đoạn mã này vào thì khỏi cần bấm F9.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub
 
Ái dà... nếu thêm mã vào thì nói làm gì nữa... Ý tôi ở đây là KO DÙNG VBA... Mỗi món nó có cái độc chiêu của nó chứ... hi.. hi...
ANH TUẤN
 
À vâng, nhưng em thấy đâu cần ô O1 và cột P mà vẫn Highlight được bảng dữ liệu, chỉ cần chỉnh lại CF.
 
Hi... hi... thế bạn làm thế nào nếu ko có cell O1 và cột P? Tôi chưa biết à nha! Bật mí đễ học hỏi xem nào?
ANH TUẤN
 
anhtuan1066 đã viết:
Hảy mở file, click chọn bất cứ cell nào trong bảng dử liệu rồi bấm F9... nguyên dòng ấy sẽ dc Highlight... Khá thú vị là file này chẳng dùng macro... (ăn cắp công nghệ của file về biểu đồ động)...
Các bạn thử xem!
ANH TUẤN

Em không hiểu Ô O1 và cộ P có ý nghĩa như thề nào? anh có thể giải thích thêm được không ?
CATHY
 
Mộ kiểu highlight đơn giản

duongsatdn đã viết:
Ở sheet dữ liệu em thêm đoạn mã này vào thì khỏi cần bấm F9.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

Sao em đánh mã code như trên rồi trờ về Excel chạy thử nhưng không thấy highlight, chắc em làm còn thiếu cái gì đó, chị có thể hướng dẫn thêm được không ? Cái này em thấy rất tiện trong công việc
cảm ơn chị
CATHY
 
Chính xác... tôi cũng vừa mới nghĩ ra... cám ơn duongsatdn gợi ý... hi.. hi..
Với CATHY.. cái công thức ấy ko quan trọng lắm... Mấu chốt nằm trong conditional formating bạn à! Vào đó xem sẽ hiểu
ANH TUẤN
 
anhtuan1066 đã viết:
Chính xác... tôi cũng vừa mới nghĩ ra... cám ơn duongsatdn gợi ý... hi.. hi..
Với CATHY.. cái công thức ấy ko quan trọng lắm... Mấu chốt nằm trong conditional formating bạn à! Vào đó xem sẽ hiểu
ANH TUẤN

Cái HighLight này chỉ là đơn giản về cách làm thôi, tuy nhiên vấn đề em thắc mắc là không biết dùng CF có gây nặng File hay không, cì CF là công thức, nó phải quét tất cả vùng đó nên em sợ . . ..

Tuy nhiên đây cũng là 1 điều đáng để học hỏi. Và sẽ hiệu quả hơn khi có sự kiện selection_change đi kèm (nễu mỗi lần di chuyển mà nhấn F9 thì hơi mất công)

Thân!
 
Từ từ thử sẽ biết mà... Nhân tiện là có thể làm luôn =COLUMN()=CELL("COL") cho Highlight luôn cột nhỉ...
Nhớ có lần lượm dc code của nước ngoài, chúng nó Highlight dòng cột nhìn thấy mê... giờ thì ta làm dc rồi nhé... Nếu kết hợp với code Calculate nữa thì thành 1 code hoàn hảo... lại ngon ăn hơn của mấy cha nước ngoài ở chổ là nó ko hề xóa mất màu của các cell gốc... Ha... ha... Nói chung là ko hề ảnh hưởng gì đến Format gốc...
ANH TUẤN
 
Lần chỉnh sửa cuối:
anhtuan1066 đã viết:
Từ từ thử sẽ biết mà... Nhân tiện là có thể làm luôn =COLUMN()=CELL("COL") cho Highlight luôn cột nhỉ...
Nhớ có lần lượm dc code của nước ngoài, chúng nó Highlight dòng cột nhìn thấy mê... giờ thì ta làm dc rồi nhé... Nếu kết hợp với code Calculate nữa thì thành 1 code hoàn hảo... lại ngon ăn hơn của mấy cha nước ngoài ở chổ là nó ko hề xóa mất màu của các cell gốc... Ha... ha... Nói chung là ko hề ảnh hưởng gì đến Format gốc...
ANH TUẤN

Vâng, cái này em áp dụng VBA cho vui.
Quả thực CF mạnh ở chỗ không thay đổi màu Cell gốc. Cái này VBA bình thường khó có thể sánh được về hiệu quả và tốc độ.

Thân!
 

File đính kèm

Bắp có file nào dung lượng lớn hơn 1 chút, khoảng 5, 6M gì đó... Thử dùng món này vào xem tốc độ thế nào? Và dung lượng có tăng lên thêm nhiều ko?
Nếu như tốc độ vẫn nhanh và dung lượng ko tăng đáng kể thì đáng để sử dụng lắm
Còn đáng tiếc thêm 1 cái là CF ko cho phép chỉnh size chử, nếu ko thì Highlight sẽ ấn tượng hơn nhiều... Chọn cell, chử trên dòng và cột của nó sẽ phìng to ra 1 chút... Y chang phim hoạt hình... he.. he..
ANH TUẤN
 
Lần chỉnh sửa cuối:
Cái highlight này khá thú vị. Tuy nhiên em nhận thấy có hai vấn đề cần bàn thêm như sau:

+ Để highlight tại dòng hay cột của ActiveCell (ô hiện thời) thì phải nhấn F9, bản chất việc này là để tính lại các hàm trên toàn bảng tính. Nếu không muốn nhấn F9 mà là tự động thì như các bạn đã làm là viết đoạn code Sheet1.Calculate (theo tôi dùng ActiveSheet.Calculate nó chung hơn) trong sự kiện Worksheet_SelectionChange, bản chất chính là nhấn F9. Cả hai việc trên không khác nhau về bản chất, chỉ khác về cách thực hiện.
Việc highlight theo cách trên sẽ phù hợp với sheet có ít công thức trên đó. Vì nếu số lượng công thức + các hàm có ở nhiều ô thì sau mỗi một hành động dịch con trỏ thì tất cả các công thức+các hàm đó đều phải tính lại (dù hàm có sẵn hay do người dùng tự viết đều phải chạy lại). Điều này sẽ làm ảnh hưởng tới tốc độ tính toán.

Một ví dụ để test sẽ về vấn đề này. Tạo trong VBE, tạo một module sau đó viết một hàm
Mã:
Function CallMe()
    MsgBox "Hàm đang được tính lại"
End Function

Một vài ô nào đó bạn gõ công thức có chứa hàm CallMe. Ví dụ tại ô B1 gõ
=CallMe() và B2 cũng cõ công thức như ở ô B1

Bây giờ chúng ta di chuyển con trỏ ô để xem điều gì xảy ra.

+ Conditional Formating là chức năng định dạng tự động, vì thế khi in sheet nó sẽ in định dạng này lên trang in. Nếu bảng tính Excel có highlight này cần in thì làm thế nào để khi in nó tự mất highlight (hoàn trả về màu cũ của dòng và cột đã bị highlight trước đó).
 
TuanVNUNI đã viết:
Một ví dụ để test sẽ về vấn đề này. Tạo trong VBE, tạo một module sau đó viết một hàm
Mã:
Function CallMe()
    MsgBox "Hàm đang được tính lại"
End Function

Một vài ô nào đó bạn gõ công thức có chứa hàm CallMe. Ví dụ tại ô B1 gõ
=CallMe() và B2 cũng cõ công thức như ở ô B1

Bây giờ chúng ta di chuyển con trỏ ô để xem điều gì xảy ra.

Mình đã test và chỉ khi nhập mới công thức này thì Msgbox mới được gọi, còn sau khi đã nhập xong, nếu nhấn f9 thì sẽ chẳng có msgbox.

VD với hàm Callme của anh, tôi copy ra 10 ô như vậy, 5 ô đầu tôi cho + với ô $a$1, 5 ô sau tôi cho + với ô $a$2

Nhấn F9, không có gì xảy ra.
thay đổi a1 ---> nhận được 5 msg (không nhấn F9, đang Autocalculation)
thay đổi a2 ---> nhận được 5 msg (không nhấn F9, đang Autocalculation)

Như vậy là chỉ khi nào có sự thay đổi Value thì sheet mới calculate lại những ô có công thức liên quan đến sự thay đổi đó, chứ không calculate lại toàn bộ bảng tính ?????

Trên đây là tôi thử nghiệm với Excel 2000, không biết các phiên bản khác như thế nào????? Mọi người test thử và cho biết ý kiến nhé.

@MR_OkeBap: nếu phải dùng sheet.Calculate trong sự kiện selectionchange, ta sẽ gặp một trở ngại là không thể copy/cut rồi paste dữ liệu được, vì khi calculate, CutandCopymode sẽ false

Có cách khác cải tiến không Bap ơi????
 
anhtuan1066 đã viết:
Còn đáng tiếc thêm 1 cái là CF ko cho phép chỉnh size chử, nếu ko thì Highlight sẽ ấn tượng hơn nhiều... Chọn cell, chử trên dòng và cột của nó sẽ phìng to ra 1 chút... Y chang phim hoạt hình... he.. he..
ANH TUẤN
Cảm ơn anh gợi ý thêm vụ column. Em kết hợp thêm định dạng font đậm lên và màu font thì thấy gầm giống phim hoạt hình. Hì...hì...
 
Conditional Formating là chức năng định dạng tự động, vì thế khi in sheet nó sẽ in định dạng này lên trang in. Nếu bảng tính Excel có highlight này cần in thì làm thế nào để khi in nó tự mất highlight (hoàn trả về màu cũ của dòng và cột đã bị highlight trước đó
Điều này bạn có thể yên tâm... Vì đã làm CF thì đâu phải ta Highlight toàn bộ bảng tính đâu mà lo... Nếu là tôi thì tôi sẽ chọn 1 vùng nào đó cho CF... Khi bạn muốn in sheet, chỉ việc chọn vào cell nằm ngoài vùng này là dc rồi
ANH TUẤN
 
Mr Okebab đã viết:
Cái HighLight này chỉ là đơn giản về cách làm thôi, tuy nhiên vấn đề em thắc mắc là không biết dùng CF có gây nặng File hay không, cì CF là công thức, nó phải quét tất cả vùng đó nên em sợ . . ..

Tuy nhiên đây cũng là 1 điều đáng để học hỏi. Và sẽ hiệu quả hơn khi có sự kiện selection_change đi kèm (nễu mỗi lần di chuyển mà nhấn F9 thì hơi mất công)

Thân!

Em hiểu rồi, nhưng nếu không phải F9 thì hay qúa !!!
CATHY
 
CATHY đã viết:
Em hiểu rồi, nhưng nếu không phải F9 thì hay qúa !!!
CATHY
Thì như ở trên các bạn ấy nói đó.. nếu bạn muốn tự động luôn thì thêm 1 đoạn code nữa vào...
Những cái ta thêm là màu mè hoa lá, cho bảng tính thêm sống động và thẫm mỹ hơn, chứ cốt lỗi vấn đề vẫn là nằm ở hàm CELL
ANH TUẤN
 
nếu phải dùng sheet.Calculate trong sự kiện selectionchange, ta sẽ gặp một trở ngại là không thể copy/cut rồi paste dữ liệu được, vì khi calculate, CutandCopymode sẽ false
SoiBien có thể cải tiến vấn đề này bằng cách tạo 1 Button, khi ta bấm vào thì SelectionChange mới có tác dụng... Bấm vào lần nữa: Tắt SelectionChange!
Nói chung ko phải lúc nào ta cũng cần đến Highlight, nếu khống chế "TẮT MỞ" như thế sẽ thuận tiện hơn!
ANH TUẤN
 
Web KT

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

Back
Top Bottom