• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Các bài viết hướng dẫn, giúp các bạn hiểu và tiếp cận với Visual Basic nhanh hơn
User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Sun 06/12/2009 9:50 am

Tên bài viết: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6
Tác giả: truongphu
Cấp độ bài viết: Chưa đánh giá
Tóm tắt: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6


(Ghi chú: bài viết tôi gởi ở ngoài, nhưng cây thư mục lại là "‹ LẬP TRÌNH ỨNG DỤNG VỚI VB.NET ‹ Các bài viết hướng dẫn và Ebook "

1- VBA là ngôn ngữ VB(6) chạy trực tiếp trên các soft của bộ MS Office. Để thuận tiện sử dụng VBA trong các project viết bằng VB6, ta buộc phải chèn bổ sung vào project các file thư viện VBA. Với Excel, đó là file EXCEL.EXE chứa các thư viện đối tượng có liên quan (Microsoft Excel 11.0 Object Library)
Cách chèn: Đương nhiên máy đã cài MS Excel, ví dụ 2003 (v 11.0)
Menu của Project1, nhấn vào Project, xuống References, nhấn, hiện lên bảng References - Project1.vbp, kéo thanh trượt tìm Microsoft Excel 11.0 Object Library, kiểm vào và nhấn OK

2- Trước hết, ta phải gọi thư viện Excel được chèn thông qua một đối tượng (object) cơ bản. Đối tượng cơ bản đó là Excel.Application.Ta viết:

Code: Select all

Dim MyObj As New Excel.Application


* Dim: khai báo biến, có thể là biến toàn cục hay biến cục bộ tùy nhu cầu
* MyObj: Tên biến đối tượng tùy đặt
* New: Để sử dụng được một biến đối tượng sau khai báo, buộc phải Set cho đối tượng là New
* Excel: Tên thư viện được gọi
* Application: Class (lớp) của thư viện tương ứng với đối tượng

Và lưu ý các bạn rằng, sau khi chèn Excel Library (có trong Excel.EXE), VB6 IDE đã sẵn sàng nhắc bài cho chúng ta sau mỗi dấu "."
Dấu "." nầy được quy định là Class trực thuộc, hoặc sau mỗi space, thậm chí sau gõ mỗi ký tự...

3- Thông thường ta hay làm việc với một tập tin xls cụ thể. Ta phải khai thêm đối tượng làm việc với tập tin. Các Class tương ứng việc nầy là Workbooks và Workbook. Luôn luôn các đối tượng sinh sau phải là con cháu của đối tượng ban đầu (Workbooks là con của Excel.Application, và Workbook là con Workbooks).
Workbooks là đối tượng làm việc với các file chung
Workbook là đối tượng làm việc với một file cụ thể
Workbooks sẽ có các hàm liên quan cho một file xls cụ thể để khớp với đối tượng Workbook
* Tạo file mới:
Workbooks.Add()
Ta viết:

Code: Select all

Dim MyBook As Workbook
Set MyBook = MyObj.Workbooks.Add()


* Mở file có sẵn:
Workbooks.Open(FileName)
Ta viết:

Code: Select all

Dim MyBook As Workbook
Set MyBook = MyObj.Workbooks.Open(App.Path & "\Book1.xls")


Trong 2 trường hợp trên, ta thử phân tích câu code trường hợp 2 tiêu biểu:
Dim MyBook As Workbook: Khai báo đối tượng MyBook như là object Workbook để làm việc với một tập tin
Set MyBook: cấu hình cho MyBooK như sau
MyObj (Đối tượng cơ bản= Cha).Workbooks (Lớp các file chung= con).Open (một file cụ thể= Lớp cháu)

4- Để ứng dụng Excel khi gọi đến được thấy hay không, ta gọi property của Application là Visible. Ví dụ ta viết để không thấy Excel hiện ra:

Code: Select all

MyObj.Visible = False


5- Ta làm việc trên một trang cụ thể, lại khai thêm đối tượng Sheet

Code: Select all

Dim Mysheet As Worksheet
Set Mysheet = Mybook.Worksheets("Sheet1")


Từ đối tượng Sheet đến các đối tượng nhỏ hơn như Range, Cell, ta có thể gọi trực tiếp vì khai báo thì rườm rà quá

Bài mở đầu tạm ngừng ngang đây với đoạn code tổng hợp các vấn đề nêu trên:

  1. Dim objExcel As New Excel.Application
  2. Dim objWorkbook As Workbook
  3. Dim objWorksheet As Worksheet
  4.  
  5. Private Sub Command1_Click()
  6.  
  7. Set objWorkbook = objExcel.Workbooks.Open(App.Path & "\Book1.xls")
  8. Set objWorksheet = objWorkbook.Worksheets("Sheet1")
  9. objExcel.Visible = True
  10.  
  11. End Sub


o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Sun 06/12/2009 1:44 pm

Các ứng dụng thường dùng khác của Application:

6- Thoát phiên làm việc, ta muốn đóng ứng dụng Excel, ta gọi hàm Quit của Application:

Code: Select all

Dim MyObj As New Excel.Application
'.....
MyObj.Quit

Lệnh trên sẽ đóng tất cả các file xls được mở bởi đối tượng MyObj

7- Để xóa Clipboard sau mỗi lần copy và paste, ta gọi property của Application là CutCopyMode:

Code: Select all

Dim MyObj As New Excel.Application
'.........
MyObj.CutCopyMode=False


Các ứng dụng thường dùng khác của Workbook:

8- Để lưu, đối tượng Workbook sẽ dùng hàm Save hoặc SaveAs

Code: Select all

Dim MyBook As Workbook
Set MyBook = MyObj.Workbooks.Add()
'............
MyBook.SaveAs App.Path & "\book2"


hoặc:

Code: Select all

Dim objExcel As New Excel.Application
Set objWorkbook = objExcel.Workbooks.Open(App.Path & "\Book1.xls")
'.........
objWorkbook.Save


Save một bản copy thì dùng hàm SaveCopyAs, cách dùng như hàm SaveAs

9- Đóng một file xls đang mở, đối tượng Workbook sẽ dùng hàm Close

Code: Select all

MyBook.Close


10- Nếu ta có thao tác trên file và đóng file, Excel sẽ lập tức hỏi có Lưu hay không. Để khai báo không lưu trước khi đóng file, ta dùng Property của worbook là Saved

Code: Select all

MyBook.Saved = False
MyBook.Close


11- Để hoạt động trên một workbook (trong trường hợp nhiều workbook đang mở), ta phải active:

Code: Select all

MyBook.Activate


12- Đối tượng Range

Đây là vùng Cell mà ta trực tiếp thao tác. Range có thể là một hay nhiều Cell
Để đơn giản, ta không khai báo mà dùng trực tiếp với dấu "." sau đối tượng WorkSheets

* Giá trị của Range: dùng property Value

Code: Select all

Dim MySheet As Worksheet
Set MySheet = Mybook.Worksheets("Sheet1")
MySheet.Range("A1").Value= "Peter"


hoặc:

Code: Select all

MySheet.Range("A1", "C5").Value= 8


* Xóa Giá trị của Range: dùng Delete

Code: Select all

MySheet.Range("A1", "C5").Delete


* Copy và Paste:

Code: Select all

MySheet.Range("A1", "D15").Copy Destination:=MyBook.Worksheets("Sheet2").Range("A1")


MySheet.Range("A1", "D15").Copy: lệnh copy các cell từ A1 đến D15
Destination:=MyBook.Worksheets("Sheet2").Range("A1"): dán vào Sheet2 cell A1

* Sắp xếp: Sort

Code: Select all

MySheet.Range("A1:E9").Sort Key1:=Range("C1"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers


MySheet.Range("A1:E9").Sort: lệnh Sort các cell từ A1 đến E9
Key1:=Range("C1"): Sắp xếp theo C1
và các phương thức sắp xếp....

Sắp theo hàng ngang:

Code: Select all

MySheet.Range("E1", "P1").Sort MySheet.Rows(1)


Trên đây là những phương thức căn bản để có thể viết code VBA/Excel cho một Project VB6
Và bạn có thể tự tin để cùng làm việc với các file XLS.
Sau đây là code minh họa một số code đã nêu trên, tôi tạm lấy một bài đã trả lời trong mục Nêu thắc mắc VB6

  1. Dim objExcel As New Excel.Application
  2. Dim objWorkbook As Workbook
  3. Dim objWorksheet As Worksheet
  4.  
  5. Private Sub Command1_Click()
  6.  
  7. Set objWorkbook = objExcel.Workbooks.Open(App.Path & "\Book1.xls")
  8. Set objWorksheet = objWorkbook.Worksheets("Sheet1")
  9. objExcel.Visible = False
  10.  
  11. Dim i%: i = 1
  12. For Each cell In Range("E1", "P1")
  13.     cell.Value = Range("A" & i)
  14.     i = i + 1
  15. Next
  16. objWorksheet.Range("e1", "p1").Sort objWorksheet.Rows(1)
  17. objWorkbook.Save
  18. objWorkbook.Close
  19. End Sub
  20.  
  21.  
  22. Private Sub Form_Unload(Cancel As Integer)
  23. On Error Resume Next
  24. objExcel.Quit
  25. End Sub


Thân ái
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Sun 06/12/2009 4:00 pm

13- Hàm CreateObject của VBA và Class WorksheetFunction của Application

CreateObject

Với các bạn đã quen VBA, chúng ta có thể bỏ qua công đoạn chèn thư viện. Thay vào đó ta có thể dùng hàm CreateObject để tạo đối tượng cơ bản Excel.Application. Tuy nhiên, VB6 IDE sẽ hết nhắc bài, do đó tôi nói lại: không khuyến khích cách nầy, trừ các bạn đã dùng VBA quen...

* Chèn, đã mô tả ở trên

Code: Select all

Dim MyObj As New Excel.Application


* Hoặc là Không chèn, cấu hình trực tiếp cho đối tượng luôn!:

Code: Select all

Set MyObj = CreateObject("Excel.Application")


hai câu code trên là tương đương về ứng dụng

WorksheetFunction

Đối tượng Application có chứa toàn bộ các hàm mà Excel sử dụng. Ta có thể gọi các hàm nầy trong các ứng dụng tùy ý. Mời các bạn xem ví dụ dễ hiểu sau: (đã viết trong trả lời thắc mắc)

  1. Private Sub Command1_Click()
  2. Dim a%, b%, c as object
  3. Set d = CreateObject("Excel.Application")
  4. a = 3: b = 4
  5. c = d.WorksheetFunction.Min(a, b)
  6. MsgBox c
  7. End Sub


Code trên là tìm Min của 2 số a và b
Đương nhiên là ta có thể tìm Min trong một đám đối số chứ không phải chỉ 2 số đơn giản trên. Sau đây mời các bạn load Project về các hàm Min, Max, Average, Sum, Pi() ... (ví dụ minh họa)

download/file.php?id=6513
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Sun 06/12/2009 4:24 pm

14- Các cách đọc giá trị của các cell

Giá trị của các cell được trình bày ở mục 12
Ta có thể đọc từng cell hay đọc cả một Range nhiều Cell, sau đó phân tích
Code sau đây giới thiệu để các bạn quen và có thể ứng dụng lúc nào đó

  1. Dim Ex As New Excel.Application, aa As Object, bb$, cc() As String
  2.  
  3. Private Sub Command1_Click()
  4. MsgBox aa.Worksheets("sheet1").Range("A1").Value
  5. MsgBox aa.Worksheets("sheet1").Range("A2").Value
  6. MsgBox aa.Worksheets("sheet1").Range("A3").Value
  7. End Sub
  8.  
  9. Private Sub Form_Load()
  10. Set aa = Ex.Workbooks.Open(App.Path & "\Book10.xls")
  11. aa.Worksheets("sheet1").Range("A1", "A3").Copy
  12. bb = Clipboard.GetText
  13. cc = Split(bb, vbCrLf)
  14. MsgBox cc(0)
  15. MsgBox cc(1)
  16. MsgBox cc(2)
  17. End Sub
  18.  
  19. Private Sub Form_Terminate()
  20. Ex.Quit
  21. End Sub


* Ở Form_Load, một mảng Range được đọc vào bộ nhớ, ta tách giá trị các cell
* Ở Command1, đọc giá trị trực tiếp từng Cell
Attachments
Chèn thu vien Excel và xu ly thông tin excel.rar
(2.72 KiB) Downloaded 1897 times
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Sun 06/12/2009 5:05 pm

15- Ghi công thức vào Cell

Bạn đã rõ, Cell ngoài giá trị là các số, text, Cell còn chứa công thức thể hiện
Code đơn giản sau đây ghi lên công thức tại cell B11
Bạn sẽ làm quen: thay vì ghi Range("B11"), bạn sẽ thấy là Cells(11, 2), trong đó 12 là Row và 2 là Column
Công thức Cell B11 là tổng các cell từ B1 đến B10

  1. Private Sub Form_Load()
  2. Set objexcel = CreateObject("Excel.Application")
  3. Set objWorkbook = objexcel.Workbooks.open(App.Path & "\book1.xls")
  4. objexcel.Cells(11, 2).Formula = "=SUM(B1:B10)"
  5. objexcel.quit
  6. End Sub


Đã quen rồi thì VBA Excel quá dễ, Phải không?

------

Nếu các bạn có thắc mắc, xin vui lòng gởi vào Box: Visual Basic for Application
Đấy là Box chuyên đề, do đó câu hỏi dễ được chú ý hơn.
viewforum.php?f=15
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

levanduyet
Thành viên danh dự
Thành viên danh dự
Posts: 13
Joined: Fri 04/07/2008 1:37 pm
Been thanked: 4 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby levanduyet » Sat 06/11/2010 8:36 am

Tôi xin có góp ý:

Code: Select all

MySheet.Range("A1").Value= "Peter"

Đối tượng Range, thuộc tính mặc định là Value, do đó đoạn mã ở trên ta có thể bỏ Value.

Khi thao tác đối tượng Range trong Excel, thông thường người ta sẽ dùng phương thức "Clear" để xóa dữ liệu thay vì dùng "Delete" vì khi dùng "Delete" có thể sẽ có hộp thoại thông báo cho người dùng.

Code: Select all

MyObj.Visible = False

Việc ẩn này sẽ bị lỗi (tức là sẽ thấy được) nếu bạn mở trên một process, mà một process bạn đang dùng, một process bạn đang thao tác trên VB6.

Trên đây làm một chút kinh nghiệm khi thao tác với Excel trên VB6.

Lê Văn Duyệt

manhtruong2111
Posts: 2
Joined: Tue 22/02/2011 12:42 am

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby manhtruong2111 » Fri 25/03/2011 4:07 pm

anh ơi cho em hỏi tí . Em thử làm theo bài này của anh thì những phép tính đơn giản như sum,max,min... thì ko vấn đề gì . nhưng khi dùng lệnh "mmult" để nhân 2 ma trận thì nó chỉ cho kết quả của phép nhân hàng và cột đầu tiên ...cả lệnh minverse cũng vậy chỉ hiện kết quả ô đầu tiên
đây là code của em

Code: Select all

Private Sub Form_Load()
    Dim Ex As New Excel.Application
    Dim Myworkbook As Workbook
    Dim Mysheet As Worksheet
    Set Myworkbook = Ex.Workbooks.Add()
    Ex.Visible = False
    Set Mysheet = Ex.Worksheets("sheet1")
    Mysheet.Range("A1").Value = "1"
    Mysheet.Range("A2").Value = "2"
    Mysheet.Range("B1").Value = "3"
    Mysheet.Range("B2").Value = "2"
    Mysheet.Range("c1").Value = "1"
    Mysheet.Range("c2").Value = "1"
   
    Mysheet.Range("D3:D4").Formula = "=Mmult(A1:B2,c1:c2)"
    Myworkbook.SaveAs (App.Path & "\book1")
    Myworkbook.Close
   
   
End Sub

anh xem hộ em là em viết sai chỗ nào hay là dùng excel như thế này ko thực hiện được các phép tính ma trận . cảm ơn anh nhiều ạ . mong anh trả lời sớm vì em đang có bài tập liên quan tới cái này hì

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Fri 25/03/2011 5:55 pm

hàm mmult là nhân 2 mảng đồng dạng
manhtruong2111 wrote: Mysheet.Range("D3:D4").Formula = "=Mmult(A1:B2,c1:c2)"

mảng 1 có 2 cột, mảng 2 có 1 cột làm sao mà chạy?
Attachments
000.jpg
000.jpg (9.71 KiB) Viewed 26784 times
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

manhtruong2111
Posts: 2
Joined: Tue 22/02/2011 12:42 am

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby manhtruong2111 » Fri 25/03/2011 7:53 pm

nhưng mà trên excel vẫn tính được mà anh . anh thu dùng excel tính phép tính của em nó vẫn ra đúng . nhưng cái này ..không hiểu

hnahkmal
Posts: 1
Joined: Mon 30/05/2011 10:00 am

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby hnahkmal » Mon 30/05/2011 10:05 am

anh chỉ giúp em viết một phân bố xác suất trên excell VB ví dụ phân bố poison, em dang rất cần ! em cảm ơn anh!

User avatar
thanganhpc
Thành viên trung thành
Thành viên trung thành
Posts: 202
Joined: Wed 25/02/2009 4:04 pm
Location: HCM City
Has thanked: 1 time
Been thanked: 49 times
Contact:

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby thanganhpc » Fri 04/11/2011 10:49 am

Trong VB6 có export đc datatable ra excel như trong .NET ko bác truongphu?

thiquocvinh
Posts: 4
Joined: Mon 23/04/2012 12:58 pm
Location: Đà Lạt
Has thanked: 3 times
Contact:

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby thiquocvinh » Mon 23/04/2012 1:55 pm

Hay quá, thật hửu ích cho những ai mới bắt đầu như mình.
Có một vấn đề là mình đã link và lấy dữ liệu từ VB sang Excel.
Ví dụ: mình có 1 màn hình để hiển thị kết quả, sau đó chuyển kết quả này vào Excel (hàng 1,cột 1)
Nhưng mình có một trở ngại là tất cả kết quả sẽ chèn lên nhau trong Excel, tức kết quả thứ 2 sẽ chèn lên thứ 1, kết quả sau chèn lên kết quả trước.
Mình muốn sẽ xuống hàng, tức KQ1 sẽ vào hàng 1, cột 1. KQ2 vào hàng 2, cột 1. KQ3 vào hàng 3, cột 1. v.v....
Do mới bắt đầu nên mình cũng không biết phải như thế nào, hi vọng mọi người có thể cho mình một hướng giải quyết.
Cám ơn mọi người.

User avatar
vietteiv
Quản trị
Quản trị
Posts: 1323
Joined: Sat 10/02/2007 12:17 am
Location: Cung cấp giải pháp quản lý doanh nghiệp, dự án, tư vấn xây dựng
Has thanked: 6 times
Been thanked: 71 times
Contact:

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby vietteiv » Mon 23/04/2012 2:35 pm

làm sao chèn lên được? khi xuất ra thì số dòng (row) hiển thị chạy tăng dần mà

olefin
Thành viên chính thức
Thành viên chính thức
Posts: 44
Joined: Sat 14/06/2008 2:42 pm
Has thanked: 2 times
Been thanked: 3 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby olefin » Tue 02/10/2012 1:30 pm

Các anh, chị, các bạn cho mình hỏi: làm sao để nhận biết được sheet đang làm việc có tổng cộng bao nhiêu dòng dữ liệu?

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Tue 02/10/2012 5:08 pm

olefin wrote:sheet đang làm việc có tổng cộng bao nhiêu dòng dữ liệu?


Chọn một cột:
Nếu dữ liệu liên tục:

Code: Select all

MsgBox ActiveSheet.Range("a1").End(xlDown).Row


Nếu dữ liệu cách quãng:

Code: Select all

MsgBox ActiveSheet.Range("a65536").End(xlUp).Row


code trên trả về địa chỉ dòng cuối (có dữ liêu) của cột A
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

longtep
Thành viên tích cực
Thành viên tích cực
Posts: 149
Joined: Sun 08/06/2008 9:45 pm
Has thanked: 10 times
Been thanked: 1 time

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby longtep » Fri 04/01/2013 12:53 am

Em đang đau đầu vụ này quá, như các bác HD thì ok rồi, ngặt nỗi
tự nhiên bị báo lỗi hoài nên em dùng lệnh:
Set Mysheet = MyBook.Worksheets(MyBook.Worksheets(K).Name)
với k tăng dần để kiểm tra thì...chao ôi, toàn là sheet ảo trong EXCEL , ko bít do đâu mà nó có nó có tên là 00000000, 100000000,....
vậy nên chương trình của em nó chạy trật hết trơn, vậy làm cách nào để xóa các sheet ảo này (=vb6) hay cách khắc phục ra sao?
Thanks các bác

vominhtuanntu
Posts: 1
Joined: Mon 10/06/2013 11:19 pm

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby vominhtuanntu » Tue 11/06/2013 12:28 pm

Thủ thuật:
Tác giả: Sưu tầm
Mô tả:


anh ơi cho e hỏi,em lưu vào excel nhưng ô excel hơi nhỏ,câu lệnh nào làm ô excel đó lơn lên

hungtiensinh
Thành viên chính thức
Thành viên chính thức
Posts: 10
Joined: Mon 06/05/2013 10:49 pm
Has thanked: 3 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby hungtiensinh » Tue 23/07/2013 3:00 pm

Trong diễn đàn xin nhờ các cao thủ chuyển chương trình cập nhật giờ từ internet viết bằng VBA sang VB6 dùm . Xin cám ơn !
Attachments
Set Windows DateTime from Internet.rar
Tập tin VBA của excel
(14.39 KiB) Downloaded 244 times

User avatar
truongphu
VIP
VIP
Posts: 4765
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 519 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby truongphu » Fri 26/07/2013 9:22 am

hungtiensinh wrote:chuyển chương trình cập nhật giờ từ internet viết bằng VBA sang VB6 dùm


ngôn ngữ VBA hay VBS thực chất là ngôn ngữ VB6, trừ phần ứng dụng riêng.
Trong file xls của bạn, module dùng ngôn ngữ VBS, phối hợp VB6. VBA chỉ có một dòng không quan trọng:

Code: Select all

Select Case Application.International(xlDateOrder)

bạn có quyền bỏ phần Select Case nầy vì chúng chỉ theo hệ thống để format DateTime mà thôi.

Ngoài ra, toàn bộ code còn lại đều chạy ngon trên môi trường VB6
vd:
Set fso = CreateObject("Scripting.FileSystemObject")

Code: Select all

  sComm = "cmd.exe /c Time " & sTime
  CreateObject("WScript.Shell").Run sComm, 0, True
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh

hungtiensinh
Thành viên chính thức
Thành viên chính thức
Posts: 10
Joined: Mon 06/05/2013 10:49 pm
Has thanked: 3 times

Re: Hướng dẫn viết VBA Excel chạy trên ứng dụng VB6

Postby hungtiensinh » Tue 30/07/2013 11:28 pm

Trong Word mình tô đen 1 đoạn văn bản, rồi xác định có bao nhiêu chữ a hoặc số 10 thì code VBA của word viết sau ạ
(http://www.caulacbovb.com/forum/viewtop ... 15&t=21600) coi tới lui các bài viết nhưng trình độ yếu nên chưa biết cách làm !


Return to “[VB] Bài viết hướng dẫn”

Who is online

Users browsing this forum: No registered users and 2 guests