Giúp code đóng workbook or excel đang dùng VB6...!!!! (1 người xem)

Liên hệ QC

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

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ử
 

File đính kèm

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ử

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?

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
 
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?
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ờ --=0)

' 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 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...
 
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?

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
ặc ặc sao nghệ thuật quá vậy trời....em làm mãi mà không được chi hít trơn
thật thanks pác nhìu lắm
nhưng cho em hỏi cái dụ RaiseEvent...với bây giờ em mới biết đến cái này ak!!!
 
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ờ --=0)


Đọ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...

Đúng rồi. Nhưng Tuấn cứ thử đi. Phải gõ vài cái thì mới nhớ lâu được. Thử cả không đăng ký và có đăng ký.
Trong VBE chọn references ...
 
Web KT

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

Back
Top Bottom