Set object Workbook trong VB6 cho file Excel đã mở sẵn

Liên hệ QC

thnghiachau

Supreme Сasual Dating - Real-life Girls
Tham gia
14/9/09
Bài viết
837
Được thích
703
Giới tính
Nam
Nghề nghiệp
Health
Xin chào GPE,
một cách thông thường theo code:
Mã:
Set objExcelApp = CreateObject("Excel.Application")
Set objWB = objExcelApp.Workbooks.Open("D:"\Test.xlsx")
và mình sẽ thao tác trên WorkBook "Test.xlsx" bằng objWB bình thường.

Thế nhưng ở đây nếu như file "Test.xlsx" đã được mở sắn rồi, vậy thì xin cho em hỏi có cách nào mình SET Object objWB cho file "Test.xlsx" đã mở sẵn này không ạ? có nghĩa là mình không dùng Set objWB = objExcelApp.Workbooks.Open("D:"\Test.xlsx") (không dùng Open)
Xin cám ơn nhiều.
 
Xin chào GPE,
một cách thông thường theo code:
Mã:
Set objExcelApp = CreateObject("Excel.Application")
Set objWB = objExcelApp.Workbooks.Open("D:"\Test.xlsx")
và mình sẽ thao tác trên WorkBook "Test.xlsx" bằng objWB bình thường.

Thế nhưng ở đây nếu như file "Test.xlsx" đã được mở sắn rồi, vậy thì xin cho em hỏi có cách nào mình SET Object objWB cho file "Test.xlsx" đã mở sẵn này không ạ? có nghĩa là mình không dùng Set objWB = objExcelApp.Workbooks.Open("D:"\Test.xlsx") (không dùng Open)
Xin cám ơn nhiều.
Vb6 em chưa dùng nên chưa biết, nghe nói nó giống vba, mà vba thì nó là vậy:
Set objWB = Workbooks("Test.xlsx")
 
Còn hàm GetObject() nữa đó. Nếu chưa có thì createObject, có rồi thì getObject.
 
Có một điều tuyệt với là ở phiên bản Excel mới thì đáp án chính là bài #1.
Excel 2019 trở lên thì chắc chắn.
Excel 2016 khả năng cũng được (không nhớ rõ).

Bí mật này rất rất rất ít người biết. Ha ha.
 
Còn hàm GetObject() nữa đó. Nếu chưa có thì createObject, có rồi thì getObject.
Cám ơn anh.
Nhưng nếu :
Mã:
Set objExcelApp = getObject("D:"\Test.xlsx")
thì bị báo file "Test.xlsx" đang mở và nó chỉ mở tiếp với "Read only"
Bài đã được tự động gộp:

Có một điều tuyệt với là ở phiên bản Excel mới thì đáp án chính là bài #1.
Excel 2019 trở lên thì chắc chắn.
Excel 2016 khả năng cũng được (không nhớ rõ).

Bí mật này rất rất rất ít người biết. Ha ha.
và em chính là trong số "đại đại đại đa số" người không biết. Nếu anh biết thì giúp em với - hy vọng anh là người trong số rất rất rất ít người biết ah...
 
Tôi cũng muốn thử vì code gần giống nhau, khỏi mất công học mới (mà học ngôn ngữ mới thì không vô). Có lẽ vài hôm nữa cài & thử chơi
Bác tìm hiểu cài được thì nhá em cái :D , Em bữa cài thử mà chưa được nên chưa tìm hiểu thêm
 
Nhanh thiệt, em cũng chưa cài thử, theo link bài #16 sử dụng IDM nên cũng chưa có thời gian mà vọc, bác tải VB6 link nào đấy?
Link này: Khi cài
1. phải Run As Administrator
2. Đến phần chọn cài các thành phần thì chỉ cài mỗi VB6 thôi. Cài các thứ khác, nhất là Data accesss thì sẽ bị lỗi (hướng dẫn nhiều nơi nói thế)
 
Cám ơn anh.
Nhưng nếu :
Mã:
Set objExcelApp = getObject("D:"\Test.xlsx")
thì bị báo file "Test.xlsx" đang mở và nó chỉ mở tiếp với "Read only"
Nếu vậy thì bạn duyệt qua các instance của Excel đang chạy, nếu có cái nào trùng tên cái Workbook đang mở thì Set objWB cho cái instance đó luôn.
 
Web KT
Back
Top Bottom