• 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
Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » CN 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:

Mã: Chọn hết

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:

Mã: Chọn hết

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


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

Mã: Chọn hết

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:

Mã: Chọn hết

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

Mã: Chọn hết

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

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » CN 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:

Mã: Chọn hết

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:

Mã: Chọn hết

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

Mã: Chọn hết

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


hoặc:

Mã: Chọn hết

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

Mã: Chọn hết

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

Mã: Chọn hết

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:

Mã: Chọn hết

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

Mã: Chọn hết

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


hoặc:

Mã: Chọn hết

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


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

Mã: Chọn hết

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


* Copy và Paste:

Mã: Chọn hết

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

Mã: Chọn hết

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:

Mã: Chọn hết

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

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » CN 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

Mã: Chọn hết

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!:

Mã: Chọn hết

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

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » CN 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
Tập tin đính kèm
Chèn thu vien Excel và xu ly thông tin excel.rar
(2.72 KiB) Đã tải 1739 lần
o0o--truongphu--o0o

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

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » CN 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ự
Bài viết: 13
Ngày tham gia: T.Sáu 04/07/2008 1:37 pm
Been thanked: 4 time

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

Gửi bàigửi bởi levanduyet » T.Bảy 06/11/2010 8:36 am

Tôi xin có góp ý:

Mã: Chọn hết

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.

Mã: Chọn hết

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
Bài viết: 2
Ngày tham gia: T.Ba 22/02/2011 12:42 am

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

Gửi bàigửi bởi manhtruong2111 » T.Sáu 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

Mã: Chọn hết

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ì

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » T.Sáu 25/03/2011 5:55 pm

hàm mmult là nhân 2 mảng đồng dạng
manhtruong2111 đã viết: 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?
Tập tin đính kèm
000.jpg
000.jpg (9.71 KiB) Đã xem 21558 lần
o0o--truongphu--o0o

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

manhtruong2111
Bài viết: 2
Ngày tham gia: T.Ba 22/02/2011 12:42 am

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

Gửi bàigửi bởi manhtruong2111 » T.Sáu 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
Bài viết: 1
Ngày tham gia: T.Hai 30/05/2011 10:00 am

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

Gửi bàigửi bởi hnahkmal » T.Hai 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!

Hình đại diện của người dùng
thanganhpc
Thành viên trung thành
Thành viên trung thành
Bài viết: 202
Ngày tham gia: T.Tư 25/02/2009 4:04 pm
Đến từ: HCM City
Has thanked: 1 time
Been thanked: 49 time
Liên hệ:

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

Gửi bàigửi bởi thanganhpc » T.Sáu 04/11/2011 10:49 am

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

thiquocvinh
Bài viết: 4
Ngày tham gia: T.Hai 23/04/2012 12:58 pm
Đến từ: Đà Lạt
Has thanked: 3 time
Liên hệ:

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

Gửi bàigửi bởi thiquocvinh » T.Hai 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.

Hình đại diện của người dùng
vietteiv
Quản trị
Quản trị
Bài viết: 1318
Ngày tham gia: T.Bảy 10/02/2007 12:17 am
Đến từ: 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 time
Been thanked: 68 time
Liên hệ:

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

Gửi bàigửi bởi vietteiv » T.Hai 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
Bài viết: 44
Ngày tham gia: T.Bảy 14/06/2008 2:42 pm
Has thanked: 2 time
Been thanked: 3 time

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

Gửi bàigửi bởi olefin » T.Ba 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?

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » T.Ba 02/10/2012 5:08 pm

olefin đã viết: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:

Mã: Chọn hết

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


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

Mã: Chọn hết

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
Bài viết: 149
Ngày tham gia: CN 08/06/2008 9:45 pm
Has thanked: 10 time
Been thanked: 1 time

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

Gửi bàigửi bởi longtep » T.Sáu 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
Bài viết: 1
Ngày tham gia: T.Hai 10/06/2013 11:19 pm

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

Gửi bàigửi bởi vominhtuanntu » T.Ba 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
Bài viết: 10
Ngày tham gia: T.Hai 06/05/2013 10:49 pm
Has thanked: 3 time

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

Gửi bàigửi bởi hungtiensinh » T.Ba 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 !
Tập tin đính kèm
Set Windows DateTime from Internet.rar
Tập tin VBA của excel
(14.39 KiB) Đã tải 156 lần

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4755
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 13 time
Been thanked: 509 time

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

Gửi bàigửi bởi truongphu » T.Sáu 26/07/2013 9:22 am

hungtiensinh đã viết: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:

Mã: Chọn hết

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")

Mã: Chọn hết

  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
Bài viết: 10
Ngày tham gia: T.Hai 06/05/2013 10:49 pm
Has thanked: 3 time

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

Gửi bàigửi bởi hungtiensinh » T.Ba 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 !


Quay về “[VB] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách