thothongcong
Thành viên mới

- Tham gia
- 9/10/09
- Bài viết
- 9
- Được thích
- 3
tình hình em đang viết code để tắt worbook trong excel (dùng VB6 tạo DLL)nhưng không chạy được
chỉ toàn báo lỗi.....
không biết co khai báo sai biến hay gì không
mong các cao thủ chỉ giáo thêm.....
em có gởi file Excel em làm nháp thử
[COLOR=#ff0000]Form1[/COLOR]:
Option Explicit
Public Event OnCommand()
Public Event OnUnload()
Private Sub Command1_Click()
[COLOR=#0000ff]' kích hoạt sự kiện, thông báo rằng sự kiện CommandButton được nhấn đã
' sẩy ra - kẻng kẻng đây ...
[/COLOR] RaiseEvent OnCommand
End Sub
Private Sub Form_Unload(Cancel As Integer)
[COLOR=#0000ff]' người dùng "thả" cho ta về ăn cỗ hả? Thế thì ta báo cho bàn dân thiên hạ biết rằng
' sự kiện ta được thả về nhà đi ăn cỗ đã sẩy ra - Ới mọi người, ta được thả về nhà đây ...
[/COLOR] RaiseEvent OnUnload
End Sub
--------------
[COLOR=#ff0000]Class1[/COLOR]:
Private ExcelApps As Excel.Application
Private WithEvents frm As Form1
Public Property Set ExcelApp(ByRef excel_App As Excel.Application)
Set ExcelApps = excel_App
End Property
Private Sub Class_Initialize()
Set frm = New Form1
End Sub
Private Sub Class_Terminate()
Unload frm
Set frm = Nothing
Set ExcelApps = Nothing
End Sub
Sub thu()
frm.Show vbModeless
End Sub
Private Sub frm_OnCommand()
[COLOR=#0000ff] ' sự kiện (nhấn CommanButton1) đã sẩy ra ... - Kẻng kẻng hả? Thế thì nghỉ ăn cơm thôi,
' nhưng trước đó ta "thải hồi" vị nào đó của Excel đã
[/COLOR] ExcelApps.ActiveWorkbook.Close
End Sub
Private Sub frm_OnUnload()
[COLOR=#0000ff] ' sự kiện người thi công chính được thả về nhà đi ăn cỗ đã sẩy ra? Thế thì
' ta cũng "thả" đối tác Excel về nhà thôi
[/COLOR] ExcelApps.Quit
End Sub
Dim a As Project1.Class1
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Set a = Nothing
End Sub
Private Sub Workbook_Open()
Set a = New Project1.Class1
Set a.ExcelApp = Excel.Application
a.thu
End Sub
Em hỏi thêm: Có phải với code trên, ta lưu thành DLL rồi đăng ký vào System32 là có thể dùng trên Excel không (hỏi vỉ chưa làm chuyện.. ấy bao giờBạn thử test mã sau xem. Tôi viết qua thôi, bạn "tỉa tót" thêm nếu cần.
Tôi nghĩ là bạn không cần đóng cái gì cả mà chỉ dang "vọc" để tìm tòi, học hỏi thôi đúng không?
Đọc mấy dòng comment này, tự nhiên nhớ đến thành viên quá cố Mr Okebab:' sự kiện (nhấn CommanButton1) đã sẩy ra ... - Kẻng kẻng hả? Thế thì nghỉ ăn cơm thôi,
' nhưng trước đó ta "thải hồi" vị nào đó của Excel đã
-------------------------------
' sự kiện người thi công chính được thả về nhà đi ăn cỗ đã sẩy ra? Thế thì
' ta cũng "thả" đối tác Excel về nhà thôi
ặc ặc sao nghệ thuật quá vậy trời....em làm mãi mà không được chi hít trơnBạn thử test mã sau xem. Tôi viết qua thôi, bạn "tỉa tót" thêm nếu cần.
Tôi nghĩ là bạn không cần đóng cái gì cả mà chỉ dang "vọc" để tìm tòi, học hỏi thôi đúng không?
VB
Mã:[COLOR=#ff0000]Form1[/COLOR]: Option Explicit Public Event OnCommand() Public Event OnUnload() Private Sub Command1_Click() [COLOR=#0000ff]' kích hoạt sự kiện, thông báo rằng sự kiện CommandButton được nhấn đã ' sẩy ra - kẻng kẻng đây ... [/COLOR] RaiseEvent OnCommand End Sub Private Sub Form_Unload(Cancel As Integer) [COLOR=#0000ff]' người dùng "thả" cho ta về ăn cỗ hả? Thế thì ta báo cho bàn dân thiên hạ biết rằng ' sự kiện ta được thả về nhà đi ăn cỗ đã sẩy ra - Ới mọi người, ta được thả về nhà đây ... [/COLOR] RaiseEvent OnUnload End Sub -------------- [COLOR=#ff0000]Class1[/COLOR]: Private ExcelApps As Excel.Application Private WithEvents frm As Form1 Public Property Set ExcelApp(ByRef excel_App As Excel.Application) Set ExcelApps = excel_App End Property Private Sub Class_Initialize() Set frm = New Form1 End Sub Private Sub Class_Terminate() Unload frm Set frm = Nothing Set ExcelApps = Nothing End Sub Sub thu() frm.Show vbModeless End Sub Private Sub frm_OnCommand() [COLOR=#0000ff] ' sự kiện (nhấn CommanButton1) đã sẩy ra ... - Kẻng kẻng hả? Thế thì nghỉ ăn cơm thôi, ' nhưng trước đó ta "thải hồi" vị nào đó của Excel đã [/COLOR] ExcelApps.ActiveWorkbook.Close End Sub Private Sub frm_OnUnload() [COLOR=#0000ff] ' sự kiện người thi công chính được thả về nhà đi ăn cỗ đã sẩy ra? Thế thì ' ta cũng "thả" đối tác Excel về nhà thôi [/COLOR] ExcelApps.Quit End Sub
Excel:
Mã:Dim a As Project1.Class1 Private Sub Workbook_BeforeClose(Cancel As Boolean) Set a = Nothing End Sub Private Sub Workbook_Open() Set a = New Project1.Class1 Set a.ExcelApp = Excel.Application a.thu End Sub
Em hỏi thêm: Có phải với code trên, ta lưu thành DLL rồi đăng ký vào System32 là có thể dùng trên Excel không (hỏi vỉ chưa làm chuyện.. ấy bao giờ)
Đọc mấy dòng comment này, tự nhiên nhớ đến thành viên quá cố Mr Okebab:
- Kiến thức uyên bác
- Nóng tính + chút hài hước
Ẹc... Ẹc...