Khi chạy code bị thông báo "Could not open .." cách khắc phục! (1 người xem)

Liên hệ QC

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

Hong.Van

Busy
Tham gia
7/5/12
Bài viết
2,330
Được thích
1,767
Em chào Thầy cô & anh chị!
Em có 2 File, File AA.xls nằm ổ đĩa D, File BB.xls nằm ổ đĩa E
Trong File AA có code như sau:
PHP:
Sub OpenFile()
With Sheets("X")
    If Range("$A$4") = True Then
        Workbooks.Open ThisWorkbook.Path & "E:\BB.xls"
    End If
End With
End Sub
Bây giờ em chạy code trên thì bị thông báo
Và báo lỗi
PHP:
Workbooks.Open ThisWorkbook.Path & "E:\BB.xls"
Giúp em sửa câu lệnh trên.Em cảm ơn!Loi.GIF
 
Em chào Thầy cô & anh chị!
Em có 2 File, File AA.xls nằm ổ đĩa D, File BB.xls nằm ổ đĩa E
Trong File AA có code như sau:
PHP:
Sub OpenFile()
With Sheets("X")
    If Range("$A$4") = True Then
        Workbooks.Open ThisWorkbook.Path & "E:\BB.xls"
    End If
End With
End Sub
Bây giờ em chạy code trên thì bị thông báo
Và báo lỗi
PHP:
Workbooks.Open ThisWorkbook.Path & "E:\BB.xls"
Giúp em sửa câu lệnh trên.Em cảm ơn!
Bạn xem kỹ câu thông báo "Could not open 'D:E:\BB.xls'" cũng đủ biết rồi ---> Đường dẫn D:E:\BB.xlslà cái gì đây?
Workbooks.Open "E:\BB.xls" là đủ rồi, tự nhiên thêm ThisWorkbook.Path vào làm chi không biết
 
Upvote 0
Em chào Thầy cô & anh chị!
Em có 2 File, File AA.xls nằm ổ đĩa D, File BB.xls nằm ổ đĩa E
Trong File AA có code như sau:
PHP:
Sub OpenFile()
With Sheets("X")
    If Range("$A$4") = True Then
        Workbooks.Open ThisWorkbook.Path & "E:\BB.xls"
    End If
End With
End Sub
Bây giờ em chạy code trên thì bị thông báo
Và báo lỗi
PHP:
Workbooks.Open ThisWorkbook.Path & "E:\BB.xls"
Giúp em sửa câu lệnh trên.Em cảm ơn!View attachment 89824

Nếu bạn sơ ý thì khi nhìn vào thông báo bạn phải "giật mình" chứ.
Làm gì có kiểu đường dẫn như "D:E:\BB.xls"?
Do AA nằm trên D nên ThisWorkbokk.Path = "D:"
nên ThisWorkbokk.Path & "E:\BB.xls" = "D:E:\BB.xls"
Sửa thành Workbooks.Open "E:\BB.xls"
----------
Chào Tuấn.
Chậm hơn ndu 1 phút - lúc bắt đầu viết trả lời trong notepad (tôi thường viết toàn bộ trong notepad sau đó dán vào GPE) chưa thấy.
Nhờ BQT xóa hộ.
 
Lần chỉnh sửa cuối:
Upvote 0
Nhìn thông báo thì hiểu, chỉ có điều không biết sửa câu lệnh như thế nào mà thôi!
Em cảm ơn
 
Upvote 0
Bây giờ em dùng File AA.xls để làm AddIns và File BB.xls vẫn ở ổ E
Mục đích khi mở Excel nếu điều kiện ở file BB thỏa điều kiện File AA thì Excell tự động kích hoạt mở File BB
Code trong File A là
PHP:
Sub OpenFile()
With Sheets("X")
    If Range("$A$4") = True Then
        Workbooks.Open "E:\BB.xls"
    End If
End With
End Sub
Và trong ThisWorkbook là
PHP:
Private Sub Workbook_Open()
Sheets("X").Select
Calculate
Call OpenFile
End Sub
Khi mở Excell thì báo lỗi
Xin giúp em khắc fục lỗi này. Em cảm ơn
Loi_AddIns.GIF
 

File đính kèm

Upvote 0

Sao mình chạy không có báo lỗi nhỉ?
Nhưng bạn nên thay hai Sub trên thành một Sub đặt trong module của File AA

Mã:
[FONT=Courier New][COLOR=#0000bb]Sub Auto_Open()
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
With Sheets("X")
    If .Range("$A$4") = True Then
        Workbooks.Open "E:\BB.xls"
    End If
End With
End Sub
[/COLOR][/FONT]
 
Lần chỉnh sửa cuối:
Upvote 0
Sheets("X").Select

AA khi lưu thành add-in thì làm gì còn sheet "X" nào active đâu mà select.
 
Upvote 0
Bây giờ em dùng File AA.xls để làm AddIns và File BB.xls vẫn ở ổ E
Mục đích khi mở Excel nếu điều kiện ở file BB thỏa điều kiện File AA thì Excell tự động kích hoạt mở File BB
Nếu file AA.xls là 1 AddIn, vậy thì sau này bạn làm cách nào sửa dữ liệu tại cell A4 đây?
(cell A4 này là nằm trên file AddIn nha)
 
Lần chỉnh sửa cuối:
Upvote 0
Neu6
Nếu file AA.xls là 1 AddIn, vậy thì sau này bạn làm cách nào sửa dữ liệu tại cell A4 đây?
(cell A4 này là nằm trên file AddIn nha)

Cell A4 của File AA này không cần thay đổi, có thay đổi thì đổi Cell A1 của Sheet Y File BB
Nếu muốn đổi Cell A4 thì vào Properties đổi True thành False của mục IsAddin là được!
-------------------
thanhlanh đã viết:
Sao mình chạy không có báo lỗi nhỉ?
Nhưng bạn nên thay hai Sub trên thành một Sub đặt trong module của File AA
Vẫn bị báo lỗi anh à!
PHP:
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
Loi_2.GIFEm cảm ơn!
 
Upvote 0
Vẫn lỗi cũ, vì add-in không active (cả workbook lẫn worksheet) làm gì activeworkbook trỏ tới nó được.
 
Upvote 0
Cell A4 của File AA này không cần thay đổi, có thay đổi thì đổi Cell A1 của Sheet Y File BB
Nếu muốn đổi Cell A4 thì vào Properties đổi True thành False của mục IsAddin là được!
-------------------

Vẫn bị báo lỗi anh à!
PHP:
ActiveWorkbook.UpdateLinks = xlUpdateLinksAlways
View attachment 89840Em cảm ơn!

Sorry, test chưa kỹ (để nguyên đuôi xls mà test):
Thử lại code này xem:
Mã:
Sub Auto_Open()
    ThisWorkbook.UpdateLink Name:="E:\BB.xls", Type:=xlExcelLinks
    Application.Calculate
    If ThisWorkbook.Sheets("X").Range("$A$4") = True Then
        Workbooks.Open "E:\BB.xls"
    End If
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Cell A4 của File AA này không cần thay đổi, có thay đổi thì đổi Cell A1 của Sheet Y File BB
Nếu muốn đổi Cell A4 thì vào Properties đổi True thành False của mục IsAddin là được!

Em cảm ơn!

Vậy cách hoạt động của AddIn này sẽ là: Khi khởi động Excel (khởi động mới hoặc mở file bất kỳ) thi AddIn sẽ kiểm tra điều kiện, nếu =TRUE thì mở file BB.xls
Đúng chứ?
Sửa code trên file AA.xls thành vầy xem:
Mã:
Sub Auto_Open()
  Dim fleOpen As String, wkb As Workbook, chkExist As Boolean
  On Error Resume Next
  ThisWorkbook.UpdateLinks = 3
  fleOpen = "E:\BB.xls"
  Set wkb = Workbooks("BB.xls")
  chkExist = CreateObject("Scripting.FileSystemObject").FileExists(fleOpen)
  If chkExist Then
    If wkb Is Nothing Then
      If ThisWorkbook.Sheets("X").Range("A4") Then Workbooks.Open (fleOpen)
    End If
  End If
End Sub
Trên đặt trong Module nhé
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom