Nhờ mọi người giải đáp giúp em về đoạn Code này ạ

Liên hệ QC

Mr.hieudoanxd

Thành viên thường trực
Tham gia
25/10/19
Bài viết
322
Được thích
150
Bài toán của em là: Em muốn mở một Workbook khác từ Workbook đang sử dụng.
Có 2 trường hợp xẩy ra Workbook đó có thể mở hoặc không.
Trong trường hợp Workbook đã mở thì chuyển đến làm việc với workbook đó, trường hợp báo lỗi do chưa mở thì mở workbook
Em bẫy lỗi bằng On Error Goto Fixit
Tuy nhiên khi chạy code, em không hiểu vì sao nó luôn chạy vào Nhãn FixIt.

Mã:
Sub Go_VLDV()
    Const cFilename = "Vat lieu dau vao.xlsm"       'Khai bao hang so
    Dim Fullname As String   
    Fullname = ActiveWorkbook.Path & "\" & cFilename
    On Error GoTo FixIt
    Windows("Vat lieu dau vao.xlsm").Activate
FixIt:
    Workbooks.Open (Fullname)
    Exit Sub
End Sub
P/s: Em không muốn khi Workbook đã mở thì sử dụng Workbooks.Open vì nó sẽ hiện hộp thoại ReOpen nếu không may chọn Yes sẽ không hay. Không biết có thể sửa lại đoạn Code này hoặc có cách nào ko hiện thị hộp thoại ReOpen hay cách giải quyết bài toán này của em không ạ?
 
Bài toán của em là: Em muốn mở một Workbook khác từ Workbook đang sử dụng.
Có 2 trường hợp xẩy ra Workbook đó có thể mở hoặc không.
Trong trường hợp Workbook đã mở thì chuyển đến làm việc với workbook đó, trường hợp báo lỗi do chưa mở thì mở workbook
Em bẫy lỗi bằng On Error Goto Fixit
Tuy nhiên khi chạy code, em không hiểu vì sao nó luôn chạy vào Nhãn FixIt.

Mã:
Sub Go_VLDV()
    Const cFilename = "Vat lieu dau vao.xlsm"       'Khai bao hang so
    Dim Fullname As String  
    Fullname = ActiveWorkbook.Path & "\" & cFilename
    On Error GoTo FixIt
    Windows("Vat lieu dau vao.xlsm").Activate
FixIt:
    Workbooks.Open (Fullname)
    Exit Sub
End Sub
P/s: Em không muốn khi Workbook đã mở thì sử dụng Workbooks.Open vì nó sẽ hiện hộp thoại ReOpen nếu không may chọn Yes sẽ không hay. Không biết có thể sửa lại đoạn Code này hoặc có cách nào ko hiện thị hộp thoại ReOpen hay cách giải quyết bài toán này của em không ạ?
Dùng tạm
...
if Fullname=empty then
FixIt:
Workbooks.Open (Fullname)
end if
...
 
Upvote 0
Bài toán của em là: Em muốn mở một Workbook khác từ Workbook đang sử dụng.
Có 2 trường hợp xẩy ra Workbook đó có thể mở hoặc không.
Trong trường hợp Workbook đã mở thì chuyển đến làm việc với workbook đó, trường hợp báo lỗi do chưa mở thì mở workbook
Em bẫy lỗi bằng On Error Goto Fixit
Tuy nhiên khi chạy code, em không hiểu vì sao nó luôn chạy vào Nhãn FixIt.

Mã:
Sub Go_VLDV()
    Const cFilename = "Vat lieu dau vao.xlsm"       'Khai bao hang so
    Dim Fullname As String
    Fullname = ActiveWorkbook.Path & "\" & cFilename
    On Error GoTo FixIt
    Windows("Vat lieu dau vao.xlsm").Activate
FixIt:
    Workbooks.Open (Fullname)
    Exit Sub
End Sub
P/s: Em không muốn khi Workbook đã mở thì sử dụng Workbooks.Open vì nó sẽ hiện hộp thoại ReOpen nếu không may chọn Yes sẽ không hay. Không biết có thể sửa lại đoạn Code này hoặc có cách nào ko hiện thị hộp thoại ReOpen hay cách giải quyết bài toán này của em không ạ?
Viết lại thế này:
Rich (BB code):
Sub Go_VLDV()
    Const cFilename = "Vat lieu dau vao.xlsm"       'Khai bao hang so
    Dim Fullname As String
    Fullname = ActiveWorkbook.Path & "\" & cFilename
    On Error GoTo FixIt
    Windows(cFilename).Activate
    Exit Sub
FixIt:
    Workbooks.Open (Fullname)
End Sub
 
Upvote 0
Dùng tạm
...
if Fullname=empty then
FixIt:
Workbooks.Open (Fullname)
end if
...
Em không hiểu ý của anh vì Fullname luôn luôn có giá trị thì làm sao nó = Empty được
Bài đã được tự động gộp:

Viết lại thế này:
Rich (BB code):
Sub Go_VLDV()
    Const cFilename = "Vat lieu dau vao.xlsm"       'Khai bao hang so
    Dim Fullname As String
    Fullname = ActiveWorkbook.Path & "\" & cFilename
    On Error GoTo FixIt
    Windows(cFilename).Activate
    Exit Sub
FixIt:
    Workbooks.Open (Fullname)
End Sub
Em sửa được trường hợp khi Wb đang mở thì ko chạy sang nhãn FixIt rồi nhưng khi ko mở thì nó lại ko di chuyển đến nhãn FixIt mà báo lỗi ở code Windows(cFilename).Activate
Bài đã được tự động gộp:

https://drive.google.com/file/d/1eD-0-8N2vn22jod-Vc3o5J2sbgTDLjBj/view?usp=sharing em không biết upload file như thế nào em chèn liên kết như thế này ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Em không hiểu ý của anh vì Fullname luôn luôn có giá trị thì làm sao nó = Empty được
Bài đã được tự động gộp:


Em sửa được trường hợp khi Wb đang mở thì ko chạy sang nhãn FixIt rồi nhưng khi ko mở thì nó lại ko di chuyển đến nhãn FixIt mà báo lỗi ở code Windows(cFilename).Activate
Bài đã được tự động gộp:

https://drive.google.com/file/d/1eD-0-8N2vn22jod-Vc3o5J2sbgTDLjBj/view?usp=sharing em không biết upload file như thế nào em chèn liên kết như thế này ạ.
Mật khẩu giải nén????????

Mà bạn viết y như tôi thì nó mở file chưa mở hoặc chuyển đến khi file đã mở chứ sao lại lỗi được (trừ trường hợp tên file bạn khai báo sai)
 
Upvote 0
Upvote 0
Web KT

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

Back
Top Bottom