Có cách nào để copy 1 UserForm?

dvu58

Thành viên thường trực
Tham gia ngày
29 Tháng tư 2007
Bài viết
298
Thích
368
Điểm
710
Tuổi
60
#1
Tôi có tạo thử 1 userform trong 1 workbook.

Sau đó, tôi muốn tạo nhiều workbook có sử dụng userform giống như userform đã tạo. Vậy, có cách nào để copy chúng sang các workbook mới được không?

Xin các bạn 1 lời góp ý nhé.
Cảm ơn nhiều
 

nvson

Geotechnics
Thành viên danh dự
Tham gia ngày
20 Tháng chín 2006
Bài viết
788
Thích
1,263
Điểm
860
#2
Bác thử làm theo cách sau:
- Mở Workbook chứa UserForm đã tạo và workbook cần copy UserForm.
- Vào VBA
- Nhấn vào UserForm đã tạo trong cửa sổ VBA Project, nhấn và giữ nguyên chuột rồi thả vào Workbook cần Copy UserForm.
- Trở về Excel, đóng Workbook chứa UserForm (nguồn).
P/s:
Nếu muốn Copy Module thì cũng làm tương tự, tuy nhiên với Module thì có nhiều cách hơn!
 

minhlev

A - Bờ - Cờ
Thành viên danh dự
Tham gia ngày
2 Tháng bảy 2007
Bài viết
422
Thích
895
Điểm
0
#3
dvu58 đã viết:
Tôi có tạo thử 1 userform trong 1 workbook.

Sau đó, tôi muốn tạo nhiều workbook có sử dụng userform giống như userform đã tạo.
Theo tôi, đơn gian chỉ cần copy workbook đó thành nhiều workbook khác thế thôi. Không biết có đúng ý bác không.
 

TranThanhPhong

Thời gian !!!
Thành viên danh dự
Tham gia ngày
16 Tháng ba 2007
Bài viết
2,104
Thích
18,829
Điểm
0
#4
Bạn cũng có thể làm theo các bước sau:

1. Vào cửa sổ VBE
2. Chọn Form cần chép và nhấp phải chuột, chọn Export File
3. Chọn nơi lưu form có đuôi là .frm
4. Mở Workbook mới và vào cửa sổ VBA
5. Chọn nhóm Forms, nhấp phải chuột, chọn Import File
6. Chọn nơi lưu form, nhấp Open.

TP.
 

dvu58

Thành viên thường trực
Tham gia ngày
29 Tháng tư 2007
Bài viết
298
Thích
368
Điểm
710
Tuổi
60
#5
ttphong2007 đã viết:
Bạn cũng có thể làm theo các bước sau:

1. Vào cửa sổ VBE
2. Chọn Form cần chép và nhấp phải chuột, chọn Export File
3. Chọn nơi lưu form có đuôi là .frm
4. Mở Workbook mới và vào cửa sổ VBA
5. Chọn nhóm Forms, nhấp phải chuột, chọn Import File
6. Chọn nơi lưu form, nhấp Open.

TP.
Cảm ơn bạn ttphong2007.

Về vấn đề này, xin bạn cho thêm một số kiến thức với nhé - Mình mô tả công việc như sau:

+ Ở workbook 1
1. Tạo ra 1 userform.
2. Mở sheet1, tạo 1 command_button để khi bấm vào nó thì cái form này "show" ra.
3. Export cái form này, sẽ ra 2 nhóc con sinh đôi:
+ 01 có đuôi là: *.frm
+ 01 có đuôi là: *.frx
5. Export cái sheet1, sẽ sinh ra cái: Sheet1.cls

+ Ở workbook 2:
1. Import cái *.frm vào workbook mới.
2. Import cái Sheet1.cls này vào workbook thì nó sẽ tự động nhảy vào thư mục classe (chứ không vào cái sheet1.xls).

Vậy mong "sư phụ" chỉ giúp:
1. Nhóc con *.frx có ý nghĩa và sử dụng như thế nào?
2. Sử dụng cái *.cls như thế nào để workbook 2 có sheet1 giống như workbook 1

Xin cảm ơn và chúc bạn thật nhiều sức khỏe.
 

dvu58

Thành viên thường trực
Tham gia ngày
29 Tháng tư 2007
Bài viết
298
Thích
368
Điểm
710
Tuổi
60
#6
minhlev đã viết:
Theo tôi, đơn gian chỉ cần copy workbook đó thành nhiều workbook khác thế thôi. Không biết có đúng ý bác không.
Cảm ơn bạn minhlev.

Nhưng mình nghĩ, ở nhiều trường hợp riêng thì cách làm này lại không phù hợp.

Ví dụ, mình tạo ra 1 woorkbook có chứa cái form này như 1 template (có thể chỉ cần có 1 sheet, có nghĩa như 1 bản mẫu để sẵn). Nhưng sau đó, khi cần thiết mình muốn "gán" cái mẫu này vào 1 workbook bất kỳ khác (mới thì không có vấn đề gì. Nhưng trường hợp workbook muốn gán này này có định dạng sẵn và khác cái workbook mẫu kia, thì rõ ràng là không được bạn ạ). Như vậy việc copy workbook như bạn gợi ý sẽ không thể thực hiện được.

Thân.
 

TranThanhPhong

Thời gian !!!
Thành viên danh dự
Tham gia ngày
16 Tháng ba 2007
Bài viết
2,104
Thích
18,829
Điểm
0
#7
Chào bác dvu58,

.FRM: Chứa thông tin dạng văn bản của các Form trong Visual Basic.

.FRX: Chứa các thông tin về cách hình ảnh, icons, ... của các Form trong Visual Basic và thông tin các thư viện tham chiếu.

.CLS: Chứa các đối tượng tham chiếu trong mã nguồn của chương trình, bao gồm các hàm, thủ tục, các biến, và các kiểu dữ liệu.

Bạn Export các sheet ra có dạng .cls nghĩa là nó chỉ xuất ra các hàm, thủ tục,... mà bạn viết trong sheet đó chứ không phải nội dung của Sheet của Workbook. Bạn có thể chuyển Sheet đó qua Workbook mới bằng cách nhấp phải chuột lên nó | chọn Move or Copy... | đánh dấu chọn vào Create a copy và chọn tên Workbook cần sao chép sang tại To Workbook: <tên Workbook> (Workbook nguồn và đích đều mở trước khi thực hiện lệnh) khi đó nội dụng của sheet mới chuyển sang được.

Thân chào,
TP.
 

Cát Lượng

Thành viên chính thức
Tham gia ngày
14 Tháng mười một 2018
Bài viết
77
Thích
11
Điểm
20
Tuổi
31
#9
Bạn cũng có thể làm theo các bước sau:

1. Vào cửa sổ VBE
2. Chọn Form cần chép và nhấp phải chuột, chọn Export File
3. Chọn nơi lưu form có đuôi là .frm
4. Mở Workbook mới và vào cửa sổ VBA
5. Chọn nhóm Forms, nhấp phải chuột, chọn Import File
6. Chọn nơi lưu form, nhấp Open.

TP.
Em có làm như anh hướng dẫn nhưng thấy báo lỗi:
4.png 6.png
 
Top