Xin viết code VB để gọi chương trình. (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nncb2008

Thành viên chính thức
Tham gia
14/2/08
Bài viết
88
Được thích
3
Chào các bạn trên diễn đàn.
Tôi có một mong muốn thế này hy vọng được sự trợ giúp.
Tôi có 1 file nncb.xls chỉ muốn được mở bằng Excel2003, trong cùng thư mục đó tôi có file Excel.exe (Excel2003 Portable). Muốn viết đoạn code trong VB6 để gọi Excel2003 Portable và mở nncb.xls
Cảm ơn các bạn.
 
Bạn có thể dùng lệnh Shell. Tham khảo đoạn mã sau:
Mã:
Sub OpenFile()
Dim sOpenFile As String

sOpenFile = "Excel.exe D:/testmacro1.xls"
Shell sOpenFile

End Sub

LVD
 
To levanduyet.
Cảm ơn anh nhiều.
Em hỏi thêm chút nữa. Em muốn Excel (bản portable) nó Enable luôn macro thì code viết thêm thế nào nhỉ?
 
To levanduyet.
Cảm ơn anh nhiều.
Em hỏi thêm chút nữa. Em muốn Excel (bản portable) nó Enable luôn macro thì code viết thêm thế nào nhỉ?
Đâu có được!
Bạn phải mở Excel và đặt Security ở mức Medium hoặc Low trước! Xong đóng Excel lại và chạy code trên
Code để Enable Macro là điều "nghịch lý" chẳng khác nào tự mình nhấc bổng mình lên khỏi mặt đất (trừ phi có sự trợ giúp của 1 trình ứng dụng khác)
 
Nếu code viết trong VB6 hay các ngôn ngữ khác ngoài VBA thì việc làm Enable Macro không khó khăn gì, chỉ cần thiết lập trong Registry xong rồi chạy mở file là xong thôi.
 
Bạn có thể dùng lệnh Shell. Tham khảo đoạn mã sau:
Mã:
Sub OpenFile()
Dim sOpenFile As String

sOpenFile = "Excel.exe D:/testmacro1.xls"
Shell sOpenFile

End Sub

LVD
Chào mọi người.
Tôi dùng cách này của anh LVD nhưng sau khi biên dịch sang .exe, chạy thì cửa sổ Excel không Maximum và không Active. Khắc phục điều này thế nào nhỉ?
 
Nhờ các bạn phân biệt các câu lệnh sau, sao mình chạy trong VB6 thấy chẳng khác nhau, nghĩa là dùng câu nào cũng được:

Mã:
1. Set ExcelApp = Excel.Application
2. Set ExcelApp = New Excel.Application
3. Set ExcelApp = CreateObject("Excel.Application")
 
Nhờ các bạn phân biệt các câu lệnh sau, sao mình chạy trong VB6 thấy chẳng khác nhau, nghĩa là dùng câu nào cũng được:

Mã:
1. Set ExcelApp = Excel.Application
2. Set ExcelApp = New Excel.Application
3. Set ExcelApp = CreateObject("Excel.Application")

Nếu bạn không thêm vd. Microsoft Excel 12.0 Object Library thì làm sao bạn chạy được 2 code đầu? Làm sao mà biết được cái "Excel.Application" nó là gì? Khi bạn thêm Microsoft Excel 12.0 Object Library thì bạn có module Excel, và trong nó rõ ràng có class Application. Vậy thì "ai cũng biết" bạn muốn tạo object của class Application.
Code 3 bạn chạy thoải mái mà không cần thêm Microsoft Excel 12.0 Object Library vì thông tin cần thiết được lấy từ csdl của system là Registry.

CreateObject("Excel.Application")?
"Xin lỗi , bác chờ tí. Aaa ...Excel.Application, Registry nói đó là object tạo bởi server Excel".

Mọi server có thể tạo object OLE/COM thì khi cài đặt chúng đăng ký các object đó và mọi thông tin được ghi trong Registry trong khóa CLSID
 
Nếu bạn không thêm vd. Microsoft Excel 12.0 Object Library thì làm sao bạn chạy được 2 code đầu? Làm sao mà biết được cái "Excel.Application" nó là gì? Khi bạn thêm Microsoft Excel 12.0 Object Library thì bạn có module Excel, và trong nó rõ ràng có class Application. Vậy thì "ai cũng biết" bạn muốn tạo object của class Application.
Code 3 bạn chạy thoải mái mà không cần thêm Microsoft Excel 12.0 Object Library vì thông tin cần thiết được lấy từ csdl của system là Registry.

CreateObject("Excel.Application")?
"Xin lỗi , bác chờ tí. Aaa ...Excel.Application, Registry nói đó là object tạo bởi server Excel".

Mọi server có thể tạo object OLE/COM thì khi cài đặt chúng đăng ký các object đó và mọi thông tin được ghi trong Registry trong khóa CLSID

Vâng cảm ơn anh, nhưng nếu không thêm thư viện Microsoft Excel 1x.0 Object Library thì mọi khai báo sau đều bị lỗi :
Mã:
Dim ExcelApp As Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
.......
Thành ra phải References đến Excel và lúc đó 3 câu lệnh trên (Set ExcelApp = .... ) tôi thấy như nhau.

Luôn tiện cho tôi hỏi sao những chương trình VB6 có kết nối với Excel (hoặc Access ...) thì không Test được trực tiếp (=F5) vì nó luôn báo lỗi cũng tại các câu lệnh set đó :
Mã:
Set ExcelApp = New Excel.Application
Set ExcelApp = CreateObject("Excel.Application")
............
Muốn chạy thử cũng phải biên dịch thành exe mới chạy được. Có phải là mặc định nó vậy không, hay là VB6 của tôi có vấn đề ? (tôi dùng bản Portable)
 
Vâng cảm ơn anh, nhưng nếu không thêm thư viện Microsoft Excel 1x.0 Object Library thì mọi khai báo sau đều bị lỗi :
Mã:
Dim ExcelApp As Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
.......
Thành ra phải References đến Excel và lúc đó 3 câu lệnh trên (Set ExcelApp = .... ) tôi thấy như nhau.

Luôn tiện cho tôi hỏi sao những chương trình VB6 có kết nối với Excel (hoặc Access ...) thì không Test được trực tiếp (=F5) vì nó luôn báo lỗi cũng tại các câu lệnh set đó :
Mã:
Set ExcelApp = New Excel.Application
Set ExcelApp = CreateObject("Excel.Application")
............
Muốn chạy thử cũng phải biên dịch thành exe mới chạy được. Có phải là mặc định nó vậy không, hay là VB6 của tôi có vấn đề ? (tôi dùng bản Portable)

Chắc ăn nhất là:
Mã:
Dim ExcelApp As [COLOR=#ff0000]Object[/COLOR]
Dim book As [COLOR=#ff0000]Object[/COLOR]
Dim sheet As [COLOR=#ff0000]Object[/COLOR] 
Set ExcelApp = CreateObject("Excel.Application")
Set....
Set ....
Khỏi Reference gì cả
 
Vâng cảm ơn anh, nhưng nếu không thêm thư viện Microsoft Excel 1x.0 Object Library thì mọi khai báo sau đều bị lỗi :
Mã:
Dim ExcelApp As Excel.Application
Dim book As Excel.Workbook
Dim sheet As Excel.Worksheet
.......
Thành ra phải References đến Excel và lúc đó 3 câu lệnh trên (Set ExcelApp = .... ) tôi thấy như nhau.

Luôn tiện cho tôi hỏi sao những chương trình VB6 có kết nối với Excel (hoặc Access ...) thì không Test được trực tiếp (=F5) vì nó luôn báo lỗi cũng tại các câu lệnh set đó :
Mã:
Set ExcelApp = New Excel.Application
Set ExcelApp = CreateObject("Excel.Application")
............
Muốn chạy thử cũng phải biên dịch thành exe mới chạy được. Có phải là mặc định nó vậy không, hay là VB6 của tôi có vấn đề ? (tôi dùng bản Portable)

Thì tôi đã nói rồi. Nếu không thêm thư viện Microsoft Excel 1x.0 Object Library thì không ai biết cái Excel kia nó là cái gì. Vậy 3 cái kia lỗi là đương nhiên. Nhưng chúng đều là object nên:
Dim ... as object

Chả nhẽ bạn chưa khai báo OBJECT bao giờ?

Tôi vẫn chạy Run được mà.
 
Web KT

Bài viết mới nhất

Back
Top Bottom