Đố vui về VBA!

Liên hệ QC

anhtuan1066

Thành viên gạo cội
Tham gia
10/3/07
Bài viết
5,802
Được thích
6,911
Nhằm cũng cố kiến thức về VBA cho các bạn mới bắt đầu và cả những bạn đang ứng dụng mà chưa hiểu nhiều về nó, tôi mở topic này với mong mõi qua những câu hỏi vui, các bạn sẽ nhận định lại sự hiểu biết cũa mình... (Kễ cã chính tôi cũng đang tập tành nên có rất nhiều cái chưa biết)
Mong rằng topic sẽ mang đến cho các bạn những khám phá thú vị với những cái tưỡng chừng như đã biết
Mong nhận dc bài viết về câu đố cũa các cao thủ! Còn các bạn mới thì đừng ngại khi đưa ra ý kiến cũa mình.. Có sai có sữa sẽ hoàn thiện!
Tôi xin mỡ màn trước bằng 1 câu hỏi đơn giãn
ANH TUẤN

CÂU HỎI 1: Tại sao biến K ko hoạt động?
Tôi muốn khi nhấn vào 1 button thì cell A1 sẽ tăng lên 1 đơn vị... Tôi đã làm như sau:
-Tạo 1 Command Button (nút nhấn thuộc thanh Control Toolbox), click phải chuột lên nút nhấn, chọn View code, rồi gõ vào đoạn code sau:
PHP:
Private Sub CommandButton1_Click()
   K = K + 1
   Range("A1").Value = K
End Sub
Ban đầu K chưa có gì, xem như =0, nhấn nút lần thứ nhất thì K dc tăng thêm 1, vậy K hiện tại sẽ bằng 1, và gán K vào cell A1 thì đương nhiên A1 sẽ =1... Nhấn nút lần 2, K lại dc tăng thêm 1 nên hiện tại K sẽ =2 và cell A1 cũng sẽ =2... vân vân.. từ đó diễn tiến tiếp...
Hi.. hi.. Điều này nghe qua có vẽ rất hợp lý, ấy thế mà khi nhấn nút nó chỉ hoạt động dc duy nhất 1 lần (A1 = 1) rồi thôi ko nhút nhít nữa...
Các bạn có thể giãi thích tại sao lại như thế ko? Tại sao những lần nhấn nút sau đó K lại ko tăng thêm tí nào (vì thực tế A1 vẫn cứ = 1 hoài) ?
ANH TUẤN
 
Màu bất kỳ (16 triệu màu) thì có: Setcolor.xls

Còn màu theo Window color set thì phải dùng Sys Color Class Control
 
Upvote 0
Màu bất kỳ (16 triệu màu) thì có: Setcolor.xls

Còn màu theo Window color set thì phải dùng Sys Color Class Control
Hổng đúng sư phụ ơi
Thử chỉnh Red = 236, Green = 233, Blue = 216 (chính là Button Face) rồi bấm Set sẽ thấy màu của Label ColorTest và màu của ActiveCell là hoàn toàn khác nhau (ActiveCell có màu vàng)
Ẹc... Ẹc...
 
Upvote 0
Màu bất kỳ (16 triệu màu) thì có: Setcolor.xls

Còn màu theo Window color set thì phải dùng Sys Color Class Control

Gán màu xuống cell thì có thể gán thoải mái nhưng khi nó thể hiện thì lại hoàn toàn khác với những gì ta muốn
Thế mới ĐỐ chứ sư phụ
(Sẽ rất khó nếu không biết dùng tiểu xảo và ngược lại... Hi... Hi...)
 
Upvote 0
Như ta đã biết, Excel chỉ cho phép tô 56 màu cho cell mà thôi. Trong khi với các objects, ta có thể tô khoảng 16 triệu màu khác nhau
Câu hỏi: Liệu ta có thể tô màu bất kỳ cho cell được không? (màu Button Face chẳng hạn)
Anh ơi, hình như câu hỏi này liên quan (hay tương tự) đến câu hỏi: "Làm sao đưa hình ảnh vào comment" ? (Ans: Fill Effects)

Lê Văn Duyệt
 
Upvote 0
Anh ơi, hình như câu hỏi này liên quan (hay tương tự) đến câu hỏi: "Làm sao đưa hình ảnh vào comment" ? (Ans: Fill Effects)

Lê Văn Duyệt
Không liên quan tí nào với Comment hay hình ảnh gì đâu Duyệt à. Chỉ tô màu bình thường vào cell thôi, có điều phải thêm 1 tí mánh
Thiết nghĩ trò này cũng có người từng làm nhưng không để ý đấy thôi
(thế nên mới đố vui: Giải pháp đơn giản nhưng khó nghĩ ra)
 
Upvote 0
Chào anh,

Vì theo em phân tích câu hỏi:
anhtuan66 đã viết:
Như ta đã biết, Excel chỉ cho phép tô 56 màu cho cell mà thôi.
Như vậy thì anh không thể làm gì ngoại trừ anh dùng "mẹo".

Còn ngược lại thì cách đặt vấn đề của anh sai.

Lê Văn Duyệt
 
Upvote 0
Chào anh,

Vì theo em phân tích câu hỏi:
Như vậy thì anh không thể làm gì ngoại trừ anh dùng "mẹo".
Còn ngược lại thì cách đặt vấn đề của anh sai.
Lê Văn Duyệt
Thì làm bất cứ cách gì có thể, miễn sao có thể TÔ MÀU ĐÚNG Ý MUỐN VÀO CELL thì thôi (cell thật sự chứ không phải hình ảnh hay Comment gì đâu nha)
Đương nhiên tôi tô được đàng hoàng thì mới đố chứ... Hi... hi...
Thật ra nói là "mẹo" thì cũng không hẳn. Chẳng qua là 1 cách ít người để ý thôi
--------------------------
Cái trò này nếu nói ra thì mọi người sẽ thấy nó đơn giản đến không ngờ. Thậm chí làm bằng tay còn được
 
Lần chỉnh sửa cuối:
Upvote 0
Thì làm bất cứ cách gì có thể, miễn sao có thể TÔ MÀU ĐÚNG Ý MUỐN VÀO CELL thì thôi (cell thật sự chứ không phải hình ảnh hay Comment gì đâu nha)
Đương nhiên tôi tô được đàng hoàng thì mới đố chứ... Hi... hi...
Thật ra nói là "mẹo" thì cũng không hẳn. Chẳng qua là 1 cách ít người để ý thôi
--------------------------
Cái trò này nếu nói ra thì mọi người sẽ thấy nó đơn giản đến không ngờ. Thậm chí làm bằng tay còn được
Có khi nào vẽ 1 textBox hình chữ nhật như cell, và fill màu 236,233,216 vào đó.
Làm "rừng thi làm vậy".
 
Upvote 0
Có khi nào vẽ 1 textBox hình chữ nhật như cell, và fill màu 236,233,216 vào đó.
Làm "rừng thi làm vậy".

Làm gì thì xin cứ tùy ý, miễn sao cái CELL THẬT SỰ PHẢI CÓ MÀU ĐÚNG Ý
Còn cách của tôi là không dùng bất cứ Object nào cả (tô màu bình thường)
Hi.. Hi...
---------------
Ở đây nói đến TÔ MÀU CHO CELL thì ngầm định phải hiểu rằng TÔ MÀU NỀN VÀ CẢ MÀU CHỮ
 
Upvote 0
Excel 2003 thì vô Option chỉnh 1 trong số 56 màu theo ý muốn.
Excel 2007 thì khỏi nói rồi.
 
Upvote 0
Ẹc ẹc, chỉnh trong option thì cần gì code?
Tool - Option - Color - Modify ...

ModifyColor.jpg
 
Lần chỉnh sửa cuối:
Upvote 0
Muốn code cũng có code:

PHP:
   ActiveWorkbook.Colors(15) = RGB(236, 233, 216)

Sau đó fill color hoặc font color bình thường bằng nút trên tool bar
 
Upvote 0
Muốn code cũng có code:

PHP:
   ActiveWorkbook.Colors(15) = RGB(236, 233, 216)

Sau đó fill color hoặc font color bình thường bằng nút trên tool bar
Code đầy đủ sẽ thế này:
PHP:
Sub Test()
  Dim Red As Long, Green As Long, Blue As Long
  Red = 236
  Green = 233
  Blue = 216
  ThisWorkbook.Colors(1) = RGB(Red, Green, Blue)
  Selection.Interior.Color = ThisWorkbook.Colors(1)
End Sub
-----------------------
Bởi vậy em mới nói, Anh Tuấn nói không rõ trong câu đố.
Lê Văn Duyệt
Đâu có gì mà không rõ hả Duyệt! Đã cho phép "dùng bất cứ cách nào" rồi còn gì. Miễn sao có thể tô màu và "nhìn thấy" đúng ý thì thôi
----------------------
Nói thêm rằng:
- Việc chỉnh màu trong Options chỉ có tác dụng đối với file hiện hành, các file khác không hề bị ảnh hưởng
- Để Reset lại màu chuẩn, dùng code: ThisWorkbook.ResetColors
 
Upvote 0
Ẹc Ẹc (bắt chước mấy anh...hi hi hi)

Câu đố kỳ này của anh không khó nhưng... em lại hiểu lầm...

Ban đầu em cũng viết code như vậy, nhưng em lại nghĩ, chẳng lẻ dễ như vậy à.

Lê Văn Duyệt
 
Upvote 0
Em có một câu đố khác.

Em có một dữ liệu gồm một vùng dữ liệu từ A1:D50. Hàng đầu tiên là tên trường dữ liệu (Mã vật tư| Tên vật tư| S.L| Đvt
Yêu cầu:
_ Sắp xếp vùng dữ liệu (sort) theo cột A.
_ Tính Subtotal ở cột C theo dữ liệu ở cột A.
_ Sau đó copy qua một sheet khác.
_ Chỉ dùng một dòng mã (one line code).

Lê Văn Duyệt
 

File đính kèm

  • DoVuiABC.xls
    23 KB · Đọc: 19
Lần chỉnh sửa cuối:
Upvote 0
Em có một câu đố khác.

Em có một dữ liệu gồm một vùng dữ liệu từ A1:D50. Hàng đầu tiên là tên trường dữ liệu (Mã vật tư| Tên vật tư| S.L| Đvt
Yêu cầu:
_ Sắp xếp vùng dữ liệu (sort) theo cột A.
_ Tính Subtotal ở cột C theo dữ liệu ở cột A.
_ Sau đó copy qua một sheet khác.
_ Chỉ dùng một dòng mã (one line code).

Lê Văn Duyệt
Nếu có thể được thì cho 1 file (giả lập) lên cho mọi người đở cực Duyệt ơi!
 
Upvote 0
Em có một câu đố khác.

Em có một dữ liệu gồm một vùng dữ liệu từ A1:D50. Hàng đầu tiên là tên trường dữ liệu (Mã vật tư| Tên vật tư| S.L| Đvt
Yêu cầu:
_ Sắp xếp vùng dữ liệu (sort) theo cột A.
_ Tính Subtotal ở cột C theo dữ liệu ở cột A.
_ Sau đó copy qua một sheet khác.
_ Chỉ dùng một dòng mã (one line code).

Lê Văn Duyệt

Cho em hỏi, Sort, gán công thức, copy ... đều là viết code hết phải không ạ?
 
Upvote 0
Web KT

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

Back
Top Bottom