tạo giao diện cho 1 sheet bằng VBA

Liên hệ QC

thanlong882

Thành viên mới
Tham gia
7/9/10
Bài viết
23
Được thích
2
- Chào các Pro cho mình hỏi 1 chút được không?
- Trong VBA có cách nào thiết kế các lệnh để nó tạo ra 1 giao diện theo ý mình muốn trên bảng tính Excel ko?
Như : tạo tiêu đề, tạo 1 bảng theo ý mình với số cột, tiêu đề cột, định dạng trong bảng ( cũng giống như mình tạo bằng tay vậy)

Mong mọi người cho ý kiến ??
 
- Chào các Pro cho mình hỏi 1 chút được không?
- Trong VBA có cách nào thiết kế các lệnh để nó tạo ra 1 giao diện theo ý mình muốn trên bảng tính Excel ko?
Như : tạo tiêu đề, tạo 1 bảng theo ý mình với số cột, tiêu đề cột, định dạng trong bảng ( cũng giống như mình tạo bằng tay vậy)

Mong mọi người cho ý kiến ??

Bạn record lại macro thao tác tạo bằng tay là được code theo ý muốn.
 
Upvote 0
- Chào các Pro cho mình hỏi 1 chút được không?
- Trong VBA có cách nào thiết kế các lệnh để nó tạo ra 1 giao diện theo ý mình muốn trên bảng tính Excel ko?
Như : tạo tiêu đề, tạo 1 bảng theo ý mình với số cột, tiêu đề cột, định dạng trong bảng ( cũng giống như mình tạo bằng tay vậy)

Mong mọi người cho ý kiến ??
Record macro là 1 cách... Còn tôi sẽ giới thiệu bạn cách khác, đó là thiết kế sẳn giao diện và cho vào SpreadSheet Object, khi cần thì copy và paste vào bảng tính
Xem file (code cực đơn giản)
 

File đính kèm

  • CreateSpreadSheet.xls
    46.5 KB · Đọc: 1,545
Upvote 0
Record macro là 1 cách... Còn tôi sẽ giới thiệu bạn cách khác, đó là thiết kế sẳn giao diện và cho vào SpreadSheet Object, khi cần thì copy và paste vào bảng tính
Xem file (code cực đơn giản)
Hay quá, xin Sư Phụ hướng dẫn cách chèn Bảng thiết kế sẵn ấy vào Form như file. Em cảm ơn
 
Upvote 0
Hay quá, xin Sư Phụ hướng dẫn cách chèn Bảng thiết kế sẵn ấy vào Form như file. Em cảm ơn
Quá đơn giản:
- Tạo 1 UserForm và chèn vào 1 SpreadSheet
- Trên SpreadSheet này, bạn cứ vô tư gõ chữ, tô màu kẻ khung tùy thích (y chang như trên bảng tính)
- Nếu bạn đang có sẳn giao diện ở 1 file nào đó, cứ việc copy và paste vào SpreadSheet
- Khi cần thì cứ dùng code như tôi đã dùng trong file đấy thôi


untitled.JPG
 
Lần chỉnh sửa cuối:
Upvote 0
Vấn đề em cần ở đây (cách chèn như thế nào)
Cho dù là chèn từ SpreadSheet vào bảng tính hay ngược lại thì cũng cứ... copy paste bình thường thôi mà bạn!
Cứ thí nghiệm đi, dễ vô cùng
(hay bạn định hỏi cách chèn SpreadSheet Object vào UserForm nhỉ?)
 
Lần chỉnh sửa cuối:
Upvote 0
Cho dù là chèn từ SpreadSheet vào bảng tính hay ngược lại thì cũng cứ... copy paste bình thường thôi mà bạn!
Cứ thí nghiệm đi, dễ vô cùng
(hay bạn định hỏi cách chèn SpreadSheet Object vào UserForm nhỉ?)

Dạ, ý em là "chèn SpreadSheet Object vào UserForm" em thử copy paste rồi mà không được, tìm trên Menu của VBE chẳng thấy có từ nào liên quan SpreadSheet Object. Xin Sư Phụ chỉ giúp, em cảm ơn.
 
Upvote 0
Dạ, ý em là "chèn SpreadSheet Object vào UserForm" em thử copy paste rồi mà không được, tìm trên Menu của VBE chẳng thấy có từ nào liên quan SpreadSheet Object. Xin Sư Phụ chỉ giúp, em cảm ơn.
- Click phải vào Toolbox, chọn Additional Controls rồi tìm...
- Nếu máy tính bị trục trặc thằng Additional Controls thì vào đây để giải quyết:
http://www.giaiphapexcel.com/forum/...t-tình-trạng-Additional-Controls-mất-tác-dụng
 
Upvote 0
Upvote 0
Sao em mở file lên bị lỗi vậy ta mặc dù em đã tạo additional control lâu lắm rồi. Anh Ndu xem giúp em với vào đoạn code cũng bị lỗi ngay chỗ speadsheet1 luôn. Thanks
 

File đính kèm

  • loi.jpg
    loi.jpg
    255.8 KB · Đọc: 317
Upvote 0
Sao em mở file lên bị lỗi vậy ta mặc dù em đã tạo additional control lâu lắm rồi. Anh Ndu xem giúp em với vào đoạn code cũng bị lỗi ngay chỗ speadsheet1 luôn. Thanks
Không biết là bạn mở file của tôi hay tự mình làm lấy? Vì với file trên, tôi mở trên Excel 2007 đâu có vấn gì chứ
 
Upvote 0
Dạ em mở file của anh đó chứ em không có làm mà không được
Thế thì tôi cũng hổng biết nguyên nhân tại sao (vì tôi không bị lỗi giống bạn)
Ai đang dùng Excel 2007 vui lòng test giùm file của tôi với!
Trường hợp của bạn chỉ có thể hướng dẩn cách kiểm tra thế này:
- Alt + F11 vào xem code
- Vào menu Tools\References và xem trong đó có mục nào báo MISSING gì gì đó không
 
Upvote 0
Upvote 0
Record macro là 1 cách... Còn tôi sẽ giới thiệu bạn cách khác, đó là thiết kế sẳn giao diện và cho vào SpreadSheet Object, khi cần thì copy và paste vào bảng tính
Xem file (code cực đơn giản)

Theo em, để tránh rắc rối với các Object bị missing, sao mình không tạo cái bảng đó bằng tay ở 1 sheet khác, rồi sau đó cũng dùng code copy vào, nếu có chỉnh sửa gì hay dùng công thức thì thao tác ngay trên sheet cũng đơn giản hơn là thao tác trên Form với SpreadSheet. -+*/-+*/-+*/
 
Upvote 0
Theo em, để tránh rắc rối với các Object bị missing, sao mình không tạo cái bảng đó bằng tay ở 1 sheet khác, rồi sau đó cũng dùng code copy vào, nếu có chỉnh sửa gì hay dùng công thức thì thao tác ngay trên sheet cũng đơn giản hơn là thao tác trên Form với SpreadSheet. -+*/-+*/-+*/
Thì tùy ý mà... chẳng qua tôi chỉ giới thiệu 1 cách mà tôi cho là ít người biết nhằm tham khảo thôi
Thật ra thao tác trên SpreadSheet Object giống đến 90% so với với thao tác trên sheet đấy
 
Upvote 0
Xin cám ơn mọi người rất nhiều !
Mọi người cho mình hỏi 1 vấn đề nữa đó là khi mình tạo lệnh VBA để copy toàn bộ sheet 1 trong excel chẳng hạn vậy thì làm thế nào để đặt tên sheet mới theo ý mình
Ví dụ : sheet 1 khi chon lệnh copy bằng VBA sẽ tạo ra 1 sheet là : sheet 11, khi chọn lệnh lần 2 ...n thì tên sheet lần lượt là sheet 12...n và đc sắp xếp theo thứ tự đó
(Vì mình thấy trong excel nếu chọn lệnh copy nhu vây sẽ tạo ra 1 sheet là sheet 12 chứ không phải sheet 11)
Mong mọi người giúp đỡ !
 
Upvote 0
Record macro là 1 cách... Còn tôi sẽ giới thiệu bạn cách khác, đó là thiết kế sẳn giao diện và cho vào SpreadSheet Object, khi cần thì copy và paste vào bảng tính
Xem file (code cực đơn giản)
Có cách nào lấy luôn định dạng trong SpreadSheet (Độ rộng các cột và dòng) không Thầy.
 
Upvote 0
Có cách nào lấy luôn định dạng trong SpreadSheet (Độ rộng các cột và dòng) không Thầy.
Chắc phải For... Next quá Dom ơi! (vì với SpreadSheet, ta PasteSpecial xlPasteColumnWidths nó báo lỗi ---> Chắc không hổ trợ)
Đại khái vầy:
PHP:
For i = 1 To Sheet1.UsedRange.Columns.Count
  Sheet1.UsedRange.Columns(i).ColumnWidth = .Spreadsheet1.Columns(i).ColumnWidth
Next
 
Upvote 0
Web KT
Back
Top Bottom