Thư Sinh Áo Trắng
Thành viên hoạt động
- Tham gia
- 26/3/21
- Bài viết
- 160
- Được thích
- 31
Em đọc qua nay không có cách chạy Marco của file đang đóng mà không mở nó lên bác ạ!Muốn vậy phải Set Wb = Workbooks.Open(tên file xlsm) trước dòng Run "'" & Wb.Name & "'!" & MacroName.
Nhưng như vậy có khác gì bạn chép cái run_sheet1 đó về file đang mở. Trước khi chạy cũng Set như vậy -> Wb.Activate -> chạy code?
Bạn cũng nên xem và nghe thêm lời khuyên của nhiều bài khác.Bạn muốn làm gì thì cứ code từ file đang mở.
Chế rồi đó. Bạn trích mà không hiểu tôi đã chế cho bạn rồi sao?Em đọc qua nay không có cách chạy Marco của file đang đóng mà không mở nó lên bác ạ!
Nhờ bác chế cho đoạn code mở file đang đóng đó nó lên, sau khi thực thi Marco trong file đóng đó (đã được mở) rồi đóng nó lại sau khi thực thi xong!
Có lẽ chỉ đến mức này thôi!
Bác cho chế cho mấy dòng code vào code bài 19 giúp em với! Bác @Maika8008
Vâng! Chung quy là gọi được Run được Marco file khác là đạt yêu cầu bác ạ!Lời khuyên sau là tốt
Bạn cũng nên xem và nghe thêm lời khuyên của nhiều bài khác.
Phần tôi, vì có nhiều cái chưa biết về bài toán nên cũng không muốn làm tiếp, vì sẽ còn phải hỏi nhiều nữa dẫn đến "vô duyên". Ví dụ: có bao nhiêu Sub khác nhau (có thể cùng tên nhưng cách xử lý khác nhau là khác nhau, hoặc vùng xử lý có cột đầu hay dòng đầu khác nhau là khác nhau...) trên khoảng 200 file "dang_dong".
Vừa thấy bạn viết:
"Em đọc qua nay không có cách chạy Marco của file đang đóng mà không mở nó lên bác ạ!
Nhờ bác chế cho đoạn code mở file đang đóng đó nó lên, sau khi thực thi Marco trong file đóng đó (đã được mở) rồi đóng nó lại sau khi thực thi xong!"
tôi cho thế là đúng đó.
Nhờ bác giúp cho vài dòng code để thêm vào bài 19 giúp em với! Vì mở nên rồi còn đóng nó lại. Code truy nhập này em không thạo. Nhờ bác!Chế rồi đó. Bạn trích mà không hiểu tôi đã chế cho bạn rồi sao?
Đóng lại thì Wb.Close True/False thôi nhưng tôi nghĩ bạn phải xem kết quả chạy macro? Chứ đóng rồi thì thôi chứ chẳng phải mất công mở lại để xem kết quả.Nhờ bác giúp cho vài dòng code để thêm vào bài 19 giúp em với! Vì mở nên rồi còn đóng nó lại. Code truy nhập này em không thạo. Nhờ bác!
Nhiều bài mừng quá mà không F5 không thấy bài mới của bácChế rồi đó. Bạn trích mà không hiểu tôi đã chế cho bạn rồi sao?
Thôi viết luôn cho rồi:
Sub chay_marco_file_khacdangmo()
Dim WorkbookName As String
Dim MacroName As String
WorkbookName = "dang_dong.xlsm"
MacroName = "run_sheet1"
'Chế:
Dim Wb as Workbook
Set Wb = Workbooks.Open(dang_dong.xlsm)
Run "'" & Wb.Name & "'!" & MacroName
End Sub
File dang_dong.xlsm ở trạng thái đóng, được mở ra từ lệnh Set Wb = Workbooks.Open(dang_dong.xlsm)
Sub chay_marco_file_khacdangdong()
Dim Wb As Workbook
Dim WorkbookName As String
Dim MacroName As String
MacroName = "run_sheet1"
Set Wb = Workbooks.Open(dang_dong.xlsm)
Run "'" & Wb.Name & "'!" & MacroName
Wb.Close False
Set Wb = Nothing
End Sub
Anh chàng này không rành code nhưng rất giỏi lượm nhặt, chắp vá.Đóng lại thì Wb.Close True/False thôi nhưng tôi nghĩ bạn phải xem kết quả chạy macro? Chứ đóng rồi thì thôi chứ chẳng phải mất công mở lại để xem kết quả.
Bác bỏ quá cho!Anh chàng này không rành code nhưng rất giỏi lượm nhặt, chắp vá.
Với những bài đã được giúp, không thể tự điều chỉnh, thiết kế lại được, mà có ý tưởng là giữ nguyên cái đã có và tìm cách điều khiển từ xa từ file khác ==> Vậy nên có cái thớt này.
Mệt cho bạn thiệt. Cách làm việc y như các bạn mới toanh khác. Nói lỗi là lỗi gì, lỗi dòng lệnh nào. Nếu lỗi mở Workbook thì mới nói lại tôi để xem lại chứ lỗi thi hành macro từ xa là code của bạn mà.Nhiều bài mừng quá mà không F5 không thấy bài mới của bác
Em chế xong vẫn lỗi bác ạ!PHP:Sub chay_marco_file_khacdangdong() Dim Wb As Workbook Dim WorkbookName As String Dim MacroName As String Set Wb = Workbooks.Open(dang_dong.xlsm) Run "'" & Wb.Name & "'!" & MacroName Wb.Close False Set Wb = Nothing End Sub
Bị lệch pha rồi, hị hị. Bạn xem lại bài trước, do thiếu đường dẫn đến file dang_dong.xlsmLỗi dòng này đây ạ!Bác sửa giúp em với!
View attachment 260331
Em cho 2 file vào thư mục VD ở ổ D.Kích Run Marco thấy mở rồi đóng file đang đóng. Nhưng mở file đang đóng ra không thấy thực thi Marco được gọi.Bác xem em với! Hiện code bài 19 thì chạy tốt, sau khi chế xong đến bài 31, thấy chỉ có hiện tượng mở file rồi đóng file mà không thấy Marco được gọi thực thi ra kết quả!Bị lệch pha rồi, hị hị. Bạn xem lại bài trước, do thiếu đường dẫn đến file dang_dong.xlsm
Sub chay_marco_file_khacdangdong()
Dim Wb As Workbook
Dim MacroName As String
MacroName = "run_sheet1"
Set Wb = Workbooks.Open("D:\VD\dang_dong.xlsm")
Run "'" & Wb.Name & "'!" & MacroName
Wb.Close False
Set Wb = Nothing
End Sub
Tôi thử trên 1 cặp file của tôi thì code hoạt động tốt.Em cho 2 file vào thư mục VD ở ổ D.Kích Run Marco thấy mở rồi đóng file đang đóng. Nhưng mở file đang đóng ra không thấy thực thi Marco được gọi.Bác xem em với! Hiện code bài 19 thì chạy tốt, sau khi chế xong đến bài 31, thấy chỉ có hiện tượng mở file rồi đóng file mà không thấy Marco được gọi thực thi ra kết quả!
Hay phải thêm đoạn code "Save" nữa bác nhỉ?
PHP:Sub chay_marco_file_khacdangdong() Dim Wb As Workbook Dim MacroName As String MacroName = "run_sheet1" Set Wb = Workbooks.Open("D:\VD\dang_dong.xlsm") Run "'" & Wb.Name & "'!" & MacroName Wb.Close False Set Wb = Nothing End Sub
Giống như code bài 19 thêm vài dòng code. Bác chạy được mà em lại không có gì.Tôi thử trên 1 cặp file của tôi thì code hoạt động tốt.
Sub chay_marco_file_khacdangdong()
Dim Wb As Workbook
Dim MacroName As String
MacroName = "run_sheet1"
Set Wb = Workbooks.Open("D:\VD\dang_dong.xlsm")
Run "'" & Wb.Name & "'!" & MacroName
'Wb.Close False -> bỏ dòng này thì lại chạy được, nhưng xong xuôi phải tắt bằng"cơm" ạ!
Set Wb = Nothing
End Sub
Với tôi thì dù False hay True cũng vẫn chạy tốt.Giống như code bài 19 thêm vài dòng code. Bác chạy được mà em lại không có gì.
Bác thử với cặp file em đính kèm bài 1. Code bài 34 có chạy không bác?
'Wb.Close False -> bỏ dòng này thì lại chạy được, nhưng xong xuôi phải tắt bằng"cơm" ạ! Bác xem xem em với!PHP:Sub chay_marco_file_khacdangdong() Dim Wb As Workbook Dim MacroName As String MacroName = "run_sheet1" Set Wb = Workbooks.Open("D:\VD\dang_dong.xlsm") Run "'" & Wb.Name & "'!" & MacroName 'Wb.Close False -> bỏ dòng này thì lại chạy được, nhưng xong xuôi phải tắt bằng"cơm" ạ! Set Wb = Nothing End Sub
Cho em xin đoạn code lưu luôn bác!Với tôi thì dù False hay True cũng vẫn chạy tốt.
Nhưng tôi không hiểu tình huống gì mà phải mở file đó ra chạy macro xong rồi đóng mà không lưu?
Bạn đùa hay thật vậy: bạn dùng Wb.Close False (tức đóng mà không lưu) mà không hiểu dòng code thật sao? Muốn lưu thì Wb.Close True chứ gì mà xin.Cho em xin đoạn code lưu luôn bác!
'Wb.Close False -> bỏ dòng này thì lại chạy được, nhưng xong xuôi phải tắt bằng"cơm" ạ! Thì mới chạy đúng kết quả bài 19
Hic như có ma ấy!
Đã ok VBA cũng gớm phết ấy chứ.Chạy ngon rồi hihi cảm ơn bác @Maika8008Bạn đùa hay thật vậy: bạn dùng Wb.Close False (tức đóng mà không lưu) mà không hiểu dòng code thật sao? Muốn lưu thì Wb.Close True chứ gì mà xin.
Sub Chaymarco_file_dong_tai_file_dang_mo_mrMaika8008()
Dim PathToFile As String, NameOfFile As String, wbTarget As Workbook, CloseIt As Boolean
NameOfFile = "dang_dong.xlsm"
PathToFile = "D:\VD" 'File dang_dong cho vào ổ D trong Folder VD
On Error Resume Next
Set wbTarget = Workbooks(NameOfFile)
Set wbTarget = Workbooks.Open(PathToFile & "\" & NameOfFile)
CloseIt = True
'On Error GoTo 0
Application.Run (wbTarget.Name & "!run_sheet1") 'run_sheet1 là tên Marco của cần chạy của file đóng
If CloseIt = True Then
wbTarget.Close savechanges:=True
Else
ThisWorkbook.Activate
End If
End Sub
10 CloseIt = True
20 Application.Run (wbTarget.Name & "!run_sheet1")
30 If CloseIt = True Then ...
30 If CloseIt Then ...