Trang chủ
Bài viết mới
Diễn đàn
Bài mới trên hồ sơ
Hoạt động mới nhất
VIDEO
Mùa Tết
Văn Học Trẻ
Văn Học News
Media
New media
New comments
Search media
Đại Học
Đại cương
Chuyên ngành
Triết học
Kinh tế
KHXH & NV
Công nghệ thông tin
Khoa học kĩ thuật
Luận văn, tiểu luận
Phổ Thông
Lớp 12
Ngữ văn 12
Lớp 11
Ngữ văn 11
Lớp 10
Ngữ văn 10
LỚP 9
Ngữ văn 9
Lớp 8
Ngữ văn 8
Lớp 7
Ngữ văn 7
Lớp 6
Ngữ văn 6
Tiểu học
Thành viên
Thành viên trực tuyến
Bài mới trên hồ sơ
Tìm trong hồ sơ cá nhân
Credits
Transactions
Xu: 0
Đăng nhập
Đăng ký
Có gì mới?
Tìm kiếm
Tìm kiếm
Chỉ tìm trong tiêu đề
Bởi:
Hoạt động mới nhất
Đăng ký
Menu
Đăng nhập
Đăng ký
Install the app
Cài đặt
Chào mừng Bạn tham gia Diễn Đàn VNKienThuc.com -
Định hướng Forum
Kiến Thức
- HÃY TẠO CHỦ ĐỀ KIẾN THỨC HỮU ÍCH VÀ CÙNG NHAU THẢO LUẬN Kết nối:
VNK X
-
VNK groups
| Nhà Tài Trợ:
BhnongFood X
-
Bhnong groups
-
Đặt mua Bánh Bhnong
CÔNG NGHỆ
Công Nghệ Thông Tin
Thủ Thuật Tin học
Hướng dẫn cách đóng gói tập tin Excel
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Trả lời chủ đề
Nội dung
<blockquote data-quote="mailan168" data-source="post: 72884" data-attributes="member: 1883"><p style="text-align: center"><span style="font-size: 15px"><strong>Hướng dẫn cách đóng gói tập tin Excel</strong></span></p> <p style="text-align: center"></p><p><strong></strong></p><p><strong>Trong file Excel, bạn có thể viết một số đoạn code bằng ngôn ngữ VBA để xử lý dữ liệu trong file Excel hiện hành (và các file Excel khác nếu muốn). Các đoạn code VBA này sẽ truy xuất dữ liệu của file Excel thông qua mô hình hướng đối tượng.</strong></p><p></p><p style="text-align: center"><img src="https://thanglong-aptech.com/wp-content/uploads/2011/01/excel.jpg" alt="" class="fr-fic fr-dii fr-draggable " data-size="" style="" /></p> <p style="text-align: center"></p><p></p><p>Thí dụ bạn có thể dùng các đối tượng ActiveWorkbook, Workbooks() để truy xuất workbook hiện hành hay workbook với tên xác định, hay các đối tượng ActiveSheet hay Sheets() để truy xuất worksheet hiện hành hay worksheet với tên xác định. Thí dụ thủ tục CreateSheet sau đây sẽ tạo 1 worksheet mới (trong workbook hiện hành) có tên là "YourSheet", rồi tự động nhập thông tin tọa độ của từng cell trong vùng cell từ A1 tới D10:</p><p></p><p>Sub CreateSheet()</p><p>Dim rg As Range</p><p>Dim row As Integer, col As Integer</p><p>'tạo worksheet mới</p><p>Sheets.Add</p><p>'đặt tên cho worksheet mới</p><p>ActiveSheet.Name = "YourSheet"</p><p>'thiết lập vùng cell cần xử lý</p><p>Set rg = Range("A1<img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f600.png" class="smilie smilie--emoji" loading="lazy" width="72" height="72" alt=":D" title="Big grin :D" data-smilie="8"data-shortname=":D" />10")</p><p>'nhập thông tin tọa độ cho từng cell</p><p>'duyệt theo hàng</p><p>For row = 1 To 10</p><p>'duyệt theo cột</p><p>For col = 1 To 4</p><p>rg.Cells(row, col).Value = "(" & row & "," & col & ")"</p><p>Next col</p><p>Next row</p><p>'lưu kết quả lên file</p><p>ActiveWorkbook.SaveAs "c:YourWB.xls"</p><p>End Sub</p><p>Thật ra các đối tượng ActiveWorkbook, Workbooks, ActiveSheet hay Sheets được truy xuất trong thủ tục trên chỉ là đối tượng con của đối tượng Application, đối tượng Application miêu tả ứng dụng Excel đang chạy. Do đó nếu muốn dùng đường dẫn tuyệt đối để truy xuất các đối tượng, thủ tục CreateSheet() trên có thể được viết lại như sau:</p><p></p><p>Sub CreateSheet()</p><p>Dim rg As Range</p><p>Dim row As Integer, col As Integer</p><p>'tạo worksheet mới</p><p>Application.Sheets.Add</p><p>'đặt tên cho worksheet mới</p><p>Application.ActiveSheet.Name = "YourSheet"</p><p>'thiết lập vùng cell cần xử lý</p><p>Set rg = Range("A1<img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f600.png" class="smilie smilie--emoji" loading="lazy" width="72" height="72" alt=":D" title="Big grin :D" data-smilie="8"data-shortname=":D" />10")</p><p>'nhập thông tin tọa độ cho từng cell</p><p>'duyệt theo hàng</p><p>For row = 1 To 10</p><p>'duyệt theo cột</p><p>For col = 1 To 4</p><p>rg.Cells(row, col).Value = "(" & row & "," & col & ")"</p><p>Next col</p><p>Next row</p><p>'lưu kết quả lên file</p><p>Application.ActiveWorkbook.SaveAs "c:YourWB.xls"</p><p>End Sub</p><p>Bây giờ nếu muốn chuyển các đoạn code VBA đã chạy tốt trong file Excel thành ứng dụng VB 6.0 độc lập, bạn cần thực hiện một số công việc sau:</p><p>- Sử dụng thư viện "Microsoft Excel x.0 Object Library" chứa các đối tượng Excel.Application, ActiveWorkbook, Workbooks, ActiveSheet, Sheets... trong Project quản lý ứng dụng VB 6.0 của bạn.</p><p>- Viết code khởi tạo đối tượng Excel.Application miêu tả ứng dụng Excel, trước khi sử dụng đối tượng này để truy xuất các đối tượng con của nó.</p><p>- Copy đoạn code VBA dùng các đối tượng bằng đường dẫn tuyệt đối đã chạy tốt vào đây.</p><p>- Sau khi xử lý dữ liệu của file Excel, viết code đóng đối tượng Excel.Application lại.</p><p>2. Muốn bảo vệ phần mềm bởi người dùng bất hợp pháp, bạn có thể viết thêm đoạn code kiểm tra password, chèn đoạn code này vào đầu phần mềm.</p><p>Để thấy rõ cách giải quyết các vấn đề vừa trình bày, chúng tôi xin giới thiệu qui trình điển hình để xây dựng 1 ứng dụng VB 6.0, nó sẽ yêu cầu người dùng nhập password, kiểm tra password nhập với password hợp pháp được lưu trong ứng dụng (hay trên file dữ liệu), nếu không đúng thì ứng dụng sẽ dừng, còn nếu đúng chương trình sẽ chạy tiếp. Chương trình gồm 1 form chính chứa 1 button Create, khi người dùng click chuột button này, ứng dụng sẽ chạy Excel, tạo 1 sheet mới có tên là "YourSheet", nhập tọa độ vào từng cell trong vùng cell từ A1 tới D10, lưu kết quả lên file "c:YourWB.xls":</p><p></p><p>1. Chạy VB 6.0, khi cửa sổ New project hiển thị, chọn icon Standard EXE rồi button Open để tạo mới Project chứa Form đơn giản.</p><p>2. Chọn menu Project.Components để hiển thị cửa sổ Components, duyệt tìm và chọn thư viện có tên là Microsoft Excel x.0 Object Library rồi OK để thêm các đối tượng trong thư viện này vào ToolBox của Project hiện hành.</p><p>3. Vẽ 1 button vào form, thíết lập lại thuộc tính (Name)=btnCreate, thuộc tính Caption="Create".</p><p>4. Ấn kép chuột vào button vừa tạo để tạo thủ tục xử lý sự kiện click chuột vào button rồi viết code cho thủ tục này như sau:</p><p>Option Explicit</p><p>'khai báo hàm API cần dùng</p><p>Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long)</p><p>'định nghĩa hằng miêu tả password đã mật mã</p><p>Const ENPASS = "zpvsqbtt"</p><p>'hàm mật mã chuỗi password đơn giản</p><p>Function Encryph(pass As String) As String</p><p>Dim bytes() As Byte</p><p>Dim str As String</p><p>Dim i As Integer</p><p>bytes = StrConv(pass, vbFromUnicode)</p><p>str = ""</p><p>For i = 0 To UBound(bytes)</p><p>str = str & Chr(bytes(i) + 1)</p><p>Next i</p><p>Encryph = str</p><p>End Function</p><p>'thủ tục khởi tạo form</p><p>Private Sub Form_Load()</p><p>Dim pass As String</p><p>'hiển thị form nhập password</p><p>frmPassword.Show vbModal</p><p>pass = frmPassword.txtPassword</p><p>Unload frmPassword</p><p>'kiểm tra password nhập</p><p>If ENPASS <> Encryph(pass) Then</p><p>'nếu sai thì dừng ứng dụng</p><p>ExitProcess (1)</p><p>End If</p><p>'nếu đúng thì chạy tiếp bình thường</p><p>End Sub</p><p>'thủ tục phục vụ click button Create</p><p>Private Sub btnCreate_Click()</p><p>'định nghĩa các biến cần dùng</p><p>Dim Application As Excel.Application</p><p>Dim WorkBook As Excel.WorkBook</p><p>Dim wksSheet As Excel.Worksheet</p><p>Dim rg As Range</p><p>Dim row As Integer, col As Integer</p><p>'tạo ứng dụng Excel</p><p>Set Application = New Excel.Application</p><p>'tạo workbook Excel</p><p>Set WorkBook = Application.Workbooks.Add</p><p>'đoạn code VBA đã có sẵn từ file Excel</p><p>'tạo worksheet mới</p><p>Application.Sheets.Add</p><p>'đặt tên cho worksheet mới</p><p>Application.ActiveSheet.Name = "YourSheet"</p><p>'thiết lập vùng cell cần xử lý</p><p>Set rg = Range("A1<img src="https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/72x72/1f600.png" class="smilie smilie--emoji" loading="lazy" width="72" height="72" alt=":D" title="Big grin :D" data-smilie="8"data-shortname=":D" />10")</p><p>'nhập thông tin tọa độ cho từng cell</p><p>'duyệt theo hàng</p><p>For row = 1 To 10</p><p>'duyệt theo cột</p><p>For col = 1 To 4</p><p>rg.Cells(row, col).Value = "(" & row & "," & col & ")"</p><p>Next col</p><p>Next row</p><p>'lưu kết quả lên file</p><p>Application.ActiveWorkbook.SaveAs "c:YourWB.xls"</p><p>'dừng ứng dụng Excel</p><p>Application.Quit</p><p>Set Application = Nothing</p><p>End Sub</p><p>5. Dời chuột về cửa sổ Project (thường nằm ở phía trên phải của màn hình), ấn phải chuột vào mục Project (phần tử gốc của cây Project) để hiển thị menu chức năng. Chọn mục Add.Form để hiển thị cửa sổ tạo form, chọn icon Form rồi button Open để tạo 1 form trống mới. Thiết lập lại thuộc tính Caption="Nhập password sử dụng", thuộc tính (Name)=frmPassword.</p><p></p><p>6. Vẽ 1 label, 1 textbox nhập password và 1 button OK vào form như hình vẽ:</p><p>Thiết lập thuộc tính (Name) cho TextBox là txtPassword, thuộc tính (Name) cho button là btnOK. Ấn kép chuột vào button OK để tạo thủ tục xử lý sự kiện click chuột trên button này rồi viết code cho thủ tục như sau :</p><p>Private Sub btnOk_Click()</p><p>Me.Visible = False</p><p>End Sub</p><p>7. Chọn menu File.Save Project As... để lưu Project lên đĩa.</p><p>8. Chọn menu Run.Start để chạy thử ứng dụng.</p><p>9. Khi ứng dụng chạy, form yêu cầu nhập password sẽ hiển thị, nếu người dùng nhập sai password qui định bởi ứng dụng, ứng dụng sẽ dừng. Nếu người dùng nhập đúng password thì form chính của ứng dụng sẽ hiển thị, lúc này nếu người dùng ấn vào button Create thì đoạn code tạo đối tượng Excel và xử lý dữ liệu sẽ chạy.</p><p></p><p>Theo pcworld</p></blockquote><p></p>
[QUOTE="mailan168, post: 72884, member: 1883"] [CENTER][SIZE=4][B]Hướng dẫn cách đóng gói tập tin Excel[/B][/SIZE] [/CENTER] [B] Trong file Excel, bạn có thể viết một số đoạn code bằng ngôn ngữ VBA để xử lý dữ liệu trong file Excel hiện hành (và các file Excel khác nếu muốn). Các đoạn code VBA này sẽ truy xuất dữ liệu của file Excel thông qua mô hình hướng đối tượng.[/B] [CENTER][IMG]https://thanglong-aptech.com/wp-content/uploads/2011/01/excel.jpg[/IMG] [/CENTER] Thí dụ bạn có thể dùng các đối tượng ActiveWorkbook, Workbooks() để truy xuất workbook hiện hành hay workbook với tên xác định, hay các đối tượng ActiveSheet hay Sheets() để truy xuất worksheet hiện hành hay worksheet với tên xác định. Thí dụ thủ tục CreateSheet sau đây sẽ tạo 1 worksheet mới (trong workbook hiện hành) có tên là "YourSheet", rồi tự động nhập thông tin tọa độ của từng cell trong vùng cell từ A1 tới D10: Sub CreateSheet() Dim rg As Range Dim row As Integer, col As Integer 'tạo worksheet mới Sheets.Add 'đặt tên cho worksheet mới ActiveSheet.Name = "YourSheet" 'thiết lập vùng cell cần xử lý Set rg = Range("A1:D10") 'nhập thông tin tọa độ cho từng cell 'duyệt theo hàng For row = 1 To 10 'duyệt theo cột For col = 1 To 4 rg.Cells(row, col).Value = "(" & row & "," & col & ")" Next col Next row 'lưu kết quả lên file ActiveWorkbook.SaveAs "c:YourWB.xls" End Sub Thật ra các đối tượng ActiveWorkbook, Workbooks, ActiveSheet hay Sheets được truy xuất trong thủ tục trên chỉ là đối tượng con của đối tượng Application, đối tượng Application miêu tả ứng dụng Excel đang chạy. Do đó nếu muốn dùng đường dẫn tuyệt đối để truy xuất các đối tượng, thủ tục CreateSheet() trên có thể được viết lại như sau: Sub CreateSheet() Dim rg As Range Dim row As Integer, col As Integer 'tạo worksheet mới Application.Sheets.Add 'đặt tên cho worksheet mới Application.ActiveSheet.Name = "YourSheet" 'thiết lập vùng cell cần xử lý Set rg = Range("A1:D10") 'nhập thông tin tọa độ cho từng cell 'duyệt theo hàng For row = 1 To 10 'duyệt theo cột For col = 1 To 4 rg.Cells(row, col).Value = "(" & row & "," & col & ")" Next col Next row 'lưu kết quả lên file Application.ActiveWorkbook.SaveAs "c:YourWB.xls" End Sub Bây giờ nếu muốn chuyển các đoạn code VBA đã chạy tốt trong file Excel thành ứng dụng VB 6.0 độc lập, bạn cần thực hiện một số công việc sau: - Sử dụng thư viện "Microsoft Excel x.0 Object Library" chứa các đối tượng Excel.Application, ActiveWorkbook, Workbooks, ActiveSheet, Sheets... trong Project quản lý ứng dụng VB 6.0 của bạn. - Viết code khởi tạo đối tượng Excel.Application miêu tả ứng dụng Excel, trước khi sử dụng đối tượng này để truy xuất các đối tượng con của nó. - Copy đoạn code VBA dùng các đối tượng bằng đường dẫn tuyệt đối đã chạy tốt vào đây. - Sau khi xử lý dữ liệu của file Excel, viết code đóng đối tượng Excel.Application lại. 2. Muốn bảo vệ phần mềm bởi người dùng bất hợp pháp, bạn có thể viết thêm đoạn code kiểm tra password, chèn đoạn code này vào đầu phần mềm. Để thấy rõ cách giải quyết các vấn đề vừa trình bày, chúng tôi xin giới thiệu qui trình điển hình để xây dựng 1 ứng dụng VB 6.0, nó sẽ yêu cầu người dùng nhập password, kiểm tra password nhập với password hợp pháp được lưu trong ứng dụng (hay trên file dữ liệu), nếu không đúng thì ứng dụng sẽ dừng, còn nếu đúng chương trình sẽ chạy tiếp. Chương trình gồm 1 form chính chứa 1 button Create, khi người dùng click chuột button này, ứng dụng sẽ chạy Excel, tạo 1 sheet mới có tên là "YourSheet", nhập tọa độ vào từng cell trong vùng cell từ A1 tới D10, lưu kết quả lên file "c:YourWB.xls": 1. Chạy VB 6.0, khi cửa sổ New project hiển thị, chọn icon Standard EXE rồi button Open để tạo mới Project chứa Form đơn giản. 2. Chọn menu Project.Components để hiển thị cửa sổ Components, duyệt tìm và chọn thư viện có tên là Microsoft Excel x.0 Object Library rồi OK để thêm các đối tượng trong thư viện này vào ToolBox của Project hiện hành. 3. Vẽ 1 button vào form, thíết lập lại thuộc tính (Name)=btnCreate, thuộc tính Caption="Create". 4. Ấn kép chuột vào button vừa tạo để tạo thủ tục xử lý sự kiện click chuột vào button rồi viết code cho thủ tục này như sau: Option Explicit 'khai báo hàm API cần dùng Private Declare Sub ExitProcess Lib "kernel32" (ByVal uExitCode As Long) 'định nghĩa hằng miêu tả password đã mật mã Const ENPASS = "zpvsqbtt" 'hàm mật mã chuỗi password đơn giản Function Encryph(pass As String) As String Dim bytes() As Byte Dim str As String Dim i As Integer bytes = StrConv(pass, vbFromUnicode) str = "" For i = 0 To UBound(bytes) str = str & Chr(bytes(i) + 1) Next i Encryph = str End Function 'thủ tục khởi tạo form Private Sub Form_Load() Dim pass As String 'hiển thị form nhập password frmPassword.Show vbModal pass = frmPassword.txtPassword Unload frmPassword 'kiểm tra password nhập If ENPASS <> Encryph(pass) Then 'nếu sai thì dừng ứng dụng ExitProcess (1) End If 'nếu đúng thì chạy tiếp bình thường End Sub 'thủ tục phục vụ click button Create Private Sub btnCreate_Click() 'định nghĩa các biến cần dùng Dim Application As Excel.Application Dim WorkBook As Excel.WorkBook Dim wksSheet As Excel.Worksheet Dim rg As Range Dim row As Integer, col As Integer 'tạo ứng dụng Excel Set Application = New Excel.Application 'tạo workbook Excel Set WorkBook = Application.Workbooks.Add 'đoạn code VBA đã có sẵn từ file Excel 'tạo worksheet mới Application.Sheets.Add 'đặt tên cho worksheet mới Application.ActiveSheet.Name = "YourSheet" 'thiết lập vùng cell cần xử lý Set rg = Range("A1:D10") 'nhập thông tin tọa độ cho từng cell 'duyệt theo hàng For row = 1 To 10 'duyệt theo cột For col = 1 To 4 rg.Cells(row, col).Value = "(" & row & "," & col & ")" Next col Next row 'lưu kết quả lên file Application.ActiveWorkbook.SaveAs "c:YourWB.xls" 'dừng ứng dụng Excel Application.Quit Set Application = Nothing End Sub 5. Dời chuột về cửa sổ Project (thường nằm ở phía trên phải của màn hình), ấn phải chuột vào mục Project (phần tử gốc của cây Project) để hiển thị menu chức năng. Chọn mục Add.Form để hiển thị cửa sổ tạo form, chọn icon Form rồi button Open để tạo 1 form trống mới. Thiết lập lại thuộc tính Caption="Nhập password sử dụng", thuộc tính (Name)=frmPassword. 6. Vẽ 1 label, 1 textbox nhập password và 1 button OK vào form như hình vẽ: Thiết lập thuộc tính (Name) cho TextBox là txtPassword, thuộc tính (Name) cho button là btnOK. Ấn kép chuột vào button OK để tạo thủ tục xử lý sự kiện click chuột trên button này rồi viết code cho thủ tục như sau : Private Sub btnOk_Click() Me.Visible = False End Sub 7. Chọn menu File.Save Project As... để lưu Project lên đĩa. 8. Chọn menu Run.Start để chạy thử ứng dụng. 9. Khi ứng dụng chạy, form yêu cầu nhập password sẽ hiển thị, nếu người dùng nhập sai password qui định bởi ứng dụng, ứng dụng sẽ dừng. Nếu người dùng nhập đúng password thì form chính của ứng dụng sẽ hiển thị, lúc này nếu người dùng ấn vào button Create thì đoạn code tạo đối tượng Excel và xử lý dữ liệu sẽ chạy. Theo pcworld [/QUOTE]
Tên
Mã xác nhận
Gửi trả lời
CÔNG NGHỆ
Công Nghệ Thông Tin
Thủ Thuật Tin học
Hướng dẫn cách đóng gói tập tin Excel
Top