Tại file đang mở thực thi các Sub có trong file đang đóng mà không cần mở file đang đóng!Xin giúp đỡ! (1 người xem)

Liên hệ QC

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

Tôi không đồng tình với cách nghĩ của bạn chút nào. Bạn muốn làm gì thì cứ code từ file đang mở. Nếu bạn biết 1 sub từ file đang đóng có công dụng gì thì tại sao bạn không viết nó từ file đang mở để tác động đến file đang đóng, hay tác động đến 1 thứ gì đó mà file đang mở hoàn toàn có thể tùy ý?
 
Upvote 0
Tôi đồng ý với Maika8008. Dữ liệu và chương trình đang trong tay ta. Sao không mở ra mà chạy.

Tuy nhiên, nếu muốn "tự động hóa cao độ" một cách giả tạo, tôi đề xuất:
1. Trong file dang_dong, bạn nên thêm code vào ThisWorkbook sự kiện Open, như sau
Private Sub Workbook_Open()
Debug.Assert 0
run_sheet1
'Lệnh save file đang hoạt động. (Hai lệnh này tôi không nhớ nên bạn tự viết)
'Lệnh đóng file đang hoạt động. (Muộn rồi nên không muốn lục tìm)
End Sub
trong đó
dòng code "Debug.Assert 0" để tạm dừng chương trình lại để chỉnh sửa. Khi tốt thì xóa đi.
Dòng "run_sheet1" để thực hiện chương trình của bạn
2. Trong file đang mở, bạn thêm code mở file dang_dong thì chắc rằng file dang_dong sẽ được xử lý.
3. Chu ý: Nếu bạn mở trực tiếp file dang_dong thì chương trình Workbook_Open vẫn chạy.
 
Upvote 0
Tôi đồng ý với Maika8008. Dữ liệu và chương trình đang trong tay ta. Sao không mở ra mà chạy.

Tuy nhiên, nếu muốn "tự động hóa cao độ" một cách giả tạo, tôi đề xuất:
1. Trong file dang_dong, bạn nên thêm code vào ThisWorkbook sự kiện Open, như sau
Private Sub Workbook_Open()
Debug.Assert 0
run_sheet1
'Lệnh save file đang hoạt động. (Hai lệnh này tôi không nhớ nên bạn tự viết)
'Lệnh đóng file đang hoạt động. (Muộn rồi nên không muốn lục tìm)
End Sub
Cảm ơn bác cho hướng làm ạ. Cảm ơn bác @haog . Xin bác cho thêm "chữ" ạ.
Tôi không đồng tình với cách nghĩ của bạn chút nào. Bạn muốn làm gì thì cứ code từ file đang mở. Nếu bạn biết 1 sub từ file đang đóng có công dụng gì thì tại sao bạn không viết nó từ file đang mở để tác động đến file đang đóng, hay tác động đến 1 thứ gì đó mà file đang mở hoàn toàn có thể tùy ý?
- Vẫn là do dữ liệu quá lớn phải chia nhỏ ra nhiều file. Mỗi file như vậy cũng có các Sub phải chạy để có dữ liệu( file đính kèm là ví dụ vài Sub, nếu chạy được thì kết luận chạy nhiều sub được) rồi chuyển về file đang mở.
- Vấn đề này với em mới mẻ mà quá là khó. Nếu không chạy được các sub ở file đóng thì sức lực bào mòn (mỗi lần mở máy tính rất ngán, do nhiều file quá) và cảm giác mênh mông quá.
- Thực ra em không biết VBA có thể có làm được việc này không và lần nữa cầu may có bác nào từng làm qua thì xin phần code này.
Xin trợ giúp ạ.
 
Upvote 0
Cảm ơn bác cho hướng làm ạ. Cảm ơn bác @haog . Xin bác cho thêm "chữ" ạ.

- Vẫn là do dữ liệu quá lớn phải chia nhỏ ra nhiều file. Mỗi file như vậy cũng có các Sub phải chạy để có dữ liệu( file đính kèm là ví dụ vài Sub, nếu chạy được thì kết luận chạy nhiều sub được) rồi chuyển về file đang mở.
- Vấn đề này với em mới mẻ mà quá là khó. Nếu không chạy được các sub ở file đóng thì sức lực bào mòn (mỗi lần mở máy tính rất ngán, do nhiều file quá) và cảm giác mênh mông quá.
- Thực ra em không biết VBA có thể có làm được việc này không và lần nữa cầu may có bác nào từng làm qua thì xin phần code này.
Xin trợ giúp ạ.
Bạn cần giả lập 1 sub (chạy được) ở file đang đóng mà file đang mở muốn gọi. Tình huống thì yêu cầu phải có thật. Bạn đưa 2 file đó lên đây.

Tôi không tin là chỉ có thể chạy từ file đang đóng mới nhẹ chứ không phải từ file đang mở!!!
 
Upvote 0
Bạn cần giả lập 1 sub (chạy được) ở file đang đóng mà file đang mở muốn gọi. Tình huống thì yêu cầu phải có thật. Bạn đưa 2 file đó lên đây.
File đính kèm dang_dong em có các Sub đang chạy được ở đang đóng rồi bác ạ
Tôi không tin là chỉ có thể chạy từ file đang đóng mới nhẹ chứ không phải từ file đang mở!!!
File vba với dung lượng 12M cảm thấy mở nên chậm chậm, của em thì toàn những file gần 200M mở nên rất đơ. Giờ có rất nhiều file 200M không thể gộp vào mà xử dụng bình thường được bác ạ.
Giá như có thể gộp hết vào một file để mà tính toán thì tốt quá, nhưng excel không xử lý được file nặng 100G. Nên em chia nhỏ ra các file nên nảy sinh tình huống ở bài này.
Bác xem có cách nào từ file đang mở chạy được các Sub file đang đóng giúp em với!
Mong được bác @haog chia sẻ về phần code này.
 
Upvote 0
Dần dà đòi hỏi càng lúc càng phi lý.
Nói chuyện toàn hàng khủng mà cứ bám vào Excel?
Công ty muốn xử lý thứ hàng khủng ấy thì cũng phải có đầu tư vào các phần mềm chuyên xử ý hàng khủng. Không thể nào "thường xuyên" lãnh hợp đồng vận chuyển hàng trăm tấn hàng mà không có lấy một chiếc xe tải.

Thay vì chúi đầu vào cái giải pháp điên rồ VBA thì nên đầu tư chất xám vào việc tìm hiểu thêm về những công nghệ của thập niên 20's, những công nghệ xử lý hàng khủng.

Chú: hằng trăm Giga dữ liệu thì máy database server với Oracle còn phải chới với nữa là nói chuyện đồ dỏm. Để làm việc được với cỡ dữ liệu này, cần chuyên viên xịn về data nói chuyện với bên bán máy để thiết kế máy cấu hình đủ xài.
 
Upvote 0
Dần dà đòi hỏi càng lúc càng phi lý.
Nói chuyện toàn hàng khủng mà cứ bám vào Excel?
Công ty muốn xử lý thứ hàng khủng ấy thì cũng phải có đầu tư vào các phần mềm chuyên xử ý hàng khủng. Không thể nào "thường xuyên" lãnh hợp đồng vận chuyển hàng trăm tấn hàng mà không có lấy một chiếc xe tải.

Thay vì chúi đầu vào cái giải pháp điên rồ VBA thì nên đầu tư chất xám vào việc tìm hiểu thêm về những công nghệ của thập niên 20's, những công nghệ xử lý hàng khủng.

Chú: hằng trăm Giga dữ liệu thì máy database server với Oracle còn phải chới với nữa là nói chuyện đồ dỏm. Để làm việc được với cỡ dữ liệu này, cần chuyên viên xịn về data nói chuyện với bên bán máy để thiết kế máy cấu hình đủ xài.
Vâng bác.
Chủ đề này nhu cầu cá nhân bác. Như bác khuyên python là giải pháp. Em cố thêm chủ đề này nữa do không biết VBA có làm được việc này không.
Ở trên bác @haog có gợi ý nhưng mò cũng chưa được ạ.
Xin các bác phần code hoặc từ khóa tiếng Anh của chủ đề này giúp em với!
 
Upvote 0
Hỏi vài câu
1. Code của bạn trong "dang_dong", Sub run_sheet1
Mã:
Sub run_sheet1()
     Call lay_data_file_mrMaika8008
     Call Copy_giatri
     Call Noisuytuyentinh_mrHieuCD
End Sub
Sao lại có Maika8008. Vô tình hay quen biết nhau.
2. Trong Sub lay_data_file_mrMaika8008 có đoạn
Mã:
strPath = ThisWorkbook.Path & "\" & "dang_mo.xlsm" 'Duong dan co dinh
On Error Resume Next
Set cn = CreateObject("adodb.connection")
cn.Open ("provider=Microsoft.ACE.OLEDB.12.0;data source=" & strPath & _
    ";mode=Read;extended properties=""Excel 12.0;hdr=no"";")
Sql = "SELECT * FROM [$A2:D] WHERE f1 is not Null"
Set rs = cn.Execute(Sql)
If Not rs.EOF Then Sheet1.Range("I2").CopyFromRecordset rs
Là chép từ file có tên "dang_mo" (đang đóng) vô file "dang_dong" (lại đạng mở). Không hiểu có "ẩn khuất" gì đây.
Tạm trao đổi (tuy còn nhiều câu hỏi). Nếu thấy cần trao đổi thêm có thể làm tiếp ở đây hoặc gửi tôi Zalo hay Facebook của bạn.
 
Upvote 0
Hỏi vài câu
1. Code của bạn trong "dang_dong", Sub run_sheet1
Mã:
Sub run_sheet1()
     Call lay_data_file_mrMaika8008
     Call Copy_giatri
     Call Noisuytuyentinh_mrHieuCD
End Sub
Sao lại có Maika8008. Vô tình hay quen biết nhau.
2. Trong Sub lay_data_file_mrMaika8008 có đoạn
Mã:
strPath = ThisWorkbook.Path & "\" & "dang_mo.xlsm" 'Duong dan co dinh
On Error Resume Next
Set cn = CreateObject("adodb.connection")
cn.Open ("provider=Microsoft.ACE.OLEDB.12.0;data source=" & strPath & _
    ";mode=Read;extended properties=""Excel 12.0;hdr=no"";")
Sql = "SELECT * FROM [$A2:D] WHERE f1 is not Null"
Set rs = cn.Execute(Sql)
If Not rs.EOF Then Sheet1.Range("I2").CopyFromRecordset rs
Là chép từ file có tên "dang_mo" (đang đóng) vô file "dang_dong" (lại đạng mở). Không hiểu có "ẩn khuất" gì đây.
Tạm trao đổi (tuy còn nhiều câu hỏi). Nếu thấy cần trao đổi thêm có thể làm tiếp ở đây hoặc gửi tôi Zalo hay Facebook của bạn.
- Cảm ơn bác quan tâm tới bài của em.
- Chốt lại câu chuyện là:
Tại file đang mở chạy các Sub file đang đóng.
- Do sử dụng nhiều 2 code của bác @Maika8008 và bác @HieuCD, lấy của ai thì em ghi rõ nguồn, có dụng ý rất cảm ơn các bác đã cho code.
Bác có gợi ý, chắc bác đã trải nghiệm qua vấn đề này mong bác giúp cho đoạn code vào chủ đề này ạ.
Mong bác @haog
 
Upvote 0
Thì tôi cũng cảm ơn bạn vì đoạn code của câu hỏi 2 làm tôi có thể đọc được dữ liệu của file đang đóng, qua đó gián tiếp cảm ơn @Maika8008 .
Hỏi tiếp mấy câu
3. Các file đóng đều đã biết tên và nằm trong thư mục nào cũng đã biết tên, phải không?
4. Dữ liệu trên các file đang đóng đều có chung cấu trúc (số cột) không, có cùng số hàng không?.
5. Xử lý của bạn chủ yếu là lấy từ file dang_mo và chép vô file dang_dong hay còn gì nữa.
 
Upvote 0
Thì tôi cũng cảm ơn bạn vì đoạn code của câu hỏi 2 làm tôi có thể đọc được dữ liệu của file đang đóng, qua đó gián tiếp cảm ơn @Maika8008 .
Hỏi tiếp mấy câu
3. Các file đóng đều đã biết tên và nằm trong thư mục nào cũng đã biết tên, phải không?
4. Dữ liệu trên các file đang đóng đều có chung cấu trúc (số cột) không, có cùng số hàng không?.
5. Xử lý của bạn chủ yếu là lấy từ file dang_mo và chép vô file dang_dong hay còn gì nữa.
3 - file mở và đóng cùng tromg Folder(thư mục window)
4 - Đa số là giống cấu trúc bác ạ và số ít khác cấu trúc
5 - Câu chuyện của em là dữ liệu tầm 100G phải chia nhỏ dữ liệu về các file gần 200M, hiện đã xử lý được từng file bằng các Sub. Giờ tìm cách, mở 1 file lên rồi lần lượt gọi các Sub trong file đóng. Đc đến đây là được rồi ạ.
 
Upvote 0
Đc đến đây là được rồi ạ.
Tiếp các câu hỏi:
6. "Đc" viết ở trên là "được" phải không? Nếu là "được" thì chỉ mong bạn nêu cách giải quyết để "được" bằng cách nào, cho mọi người có thêm kinh nghiệm.
7. Bạn đã cài các code vào các file có tên "dang_dong" bằng cách nào? Có khoảng 200 file. Bạn phải mở từng file và mở edit code và dán nó vào hay làm cách gì?

Vì rằng cách đặt câu hỏi cho mạng như là hỏi người trong cùng đơn vị. Ai cũng biết cả rồi. Cũng mong 2 bạn có tên trong code sau hỗ trợ, nói rõ thêm.
Call lay_data_file_mrMaika8008
Call Noisuytuyentinh_mrHieuCD

Riêng cái Noisuytuyentinh_mrHieuCD là tôi ngọng, vì quá nhiều For lồng nhau. Mong tác giả mô tả giải thuật.
 
Upvote 0
Tiếp các câu hỏi:
6. "Đc" viết ở trên là "được" phải không? Nếu là "được" thì chỉ mong bạn nêu cách giải quyết để "được" bằng cách nào, cho mọi người có thêm kinh nghiệm.
7. Bạn đã cài các code vào các file có tên "dang_dong" bằng cách nào? Có khoảng 200 file. Bạn phải mở từng file và mở edit code và dán nó vào hay làm cách gì?
6 - Đc là được. Mong muốn mở một file gọi được Sub file đang đóng. Được như vậy là đúng mong muốn bác ạ
7 - file đang đóng có cái em đi xin trên GPE có cái tự viết. Mỗi lần chạy em phải mở từng file nên để chạy các Sub có trong từng file.
Ở file đóng có nhiều Sub hàng tuần em phải vào từng file để chạy các Sub. Còn chủ đề này chỉ cần mở file dang_mo lên mà có từ đó chạy được các Sub có trong file đóng.
Câu 7 em cũng không rõ hết ý bác hỏi ạ?
 
Upvote 0
Vâng bác.
Chủ đề này nhu cầu cá nhân bác. Như bác khuyên python là giải pháp. Em cố thêm chủ đề này nữa do không biết VBA có làm được việc này không.
Ở trên bác @haog có gợi ý nhưng mò cũng chưa được ạ.
Xin các bác phần code hoặc từ khóa tiếng Anh của chủ đề này giúp em với!
Python chỉ là một trong những giải pháp. Tôi không hề nói nó là giải pháp toàn hảo.
Tôi đã từng nói là cái nhìn về công nghệ của bạn quá hẹp. Nhưng lúc đó tôi không tưởng là nó hẹp đến vậy.

Vấn đề trước mắt của bạn là ăn phải cái gân gà, miệng nhai không nổi mà bỏ đi thì tiếc.

Bạn mở miệng ra nghe "dữ liệu khủng", đóng miệng lại cũng "dữ liệu khủng". Thì đáng lẽ với mục đích ấy, bạn phải mở mắt ra mà tìm hiểu các công cụ chuyên về dữ liệu khủng.

Tôi không hoàn toàn nói VBA là vô vọng. Nếu bạn đã giỏi VBA rồi thì trong hiện tại (chỉ trong hiện tại thôi, chứ lâu dài vẫn phải tìm cách cải tiến) cũng có thể miễn cưỡng tiếp tục dùng code VBA. Nhưng thực tế ở đây, kiến thức VBA của bạn gần như con số không, tất cả vấn đề đều nhờ người khác viết giúp.

Gợi ý: Microsoft là môi trường của công việc thương mãi. Unix mới là nơi để chơi với dạng vấn đề toán và khoa học kỹ thuật. Nếu còn khong tách rời nổi Microsòt thì đi tìm tài liệu về Power BI mà đọc. Trước khi bạn có đủ khái niệm căn bản về Power BI thì các vấn đề hiện tại của bạn chỉ có đem lên GPE nhờ người ta code giùm. Một lần nhờ code giùm thì nhìn được một mặt của một cụm dữ liệu. Nếu bạn hiểu Power BI là cái gì thì bạn sẽ biết rằng có những cách thức để bạn có thể nhìn được vài mặt của cụm dữ liệu ấy.
một mặt với vài mặt là gì? ví dụ điển hình là con số 6 lật ngược lại thành con số 9. Theo văn chương thì Sâm Thương hai đường, không bao giờ gặp nhau, nhưng theo khoa học thì cả hai là một (Kim tinh). Tuy nhiên, kết luận rằng văn chương sai là cái nhìn một chiều.
 
Upvote 0
Python chỉ là một trong những giải pháp. Tôi không hề nói nó là giải pháp toàn hảo.
Tôi đã từng nói là cái nhìn về công nghệ của bạn quá hẹp. Nhưng lúc đó tôi không tưởng là nó hẹp đến vậy.

Vấn đề trước mắt của bạn là ăn phải cái gân gà, miệng nhai không nổi mà bỏ đi thì tiếc.

Bạn mở miệng ra nghe "dữ liệu khủng", đóng miệng lại cũng "dữ liệu khủng". Thì đáng lẽ với mục đích ấy, bạn phải mở mắt ra mà tìm hiểu các công cụ chuyên về dữ liệu khủng.

Tôi không hoàn toàn nói VBA là vô vọng. Nếu bạn đã giỏi VBA rồi thì trong hiện tại (chỉ trong hiện tại thôi, chứ lâu dài vẫn phải tìm cách cải tiến) cũng có thể miễn cưỡng tiếp tục dùng code VBA. Nhưng thực tế ở đây, kiến thức VBA của bạn gần như con số không, tất cả vấn đề đều nhờ người khác viết giúp.

Gợi ý: Microsoft là môi trường của công việc thương mãi. Unix mới là nơi để chơi với dạng vấn đề toán và khoa học kỹ thuật. Nếu còn khong tách rời nổi Microsòt thì đi tìm tài liệu về Power BI mà đọc. Trước khi bạn có đủ khái niệm căn bản về Power BI thì các vấn đề hiện tại của bạn chỉ có đem lên GPE nhờ người ta code giùm. Một lần nhờ code giùm thì nhìn được một mặt của một cụm dữ liệu. Nếu bạn hiểu Power BI là cái gì thì bạn sẽ biết rằng có những cách thức để bạn có thể nhìn được vài mặt của cụm dữ liệu ấy.
một mặt với vài mặt là gì? ví dụ điển hình là con số 6 lật ngược lại thành con số 9. Theo văn chương thì Sâm Thương hai đường, không bao giờ gặp nhau, nhưng theo khoa học thì cả hai là một (Kim tinh). Tuy nhiên, kết luận rằng văn chương sai là cái nhìn một chiều.
Giờ quay sang cái khác thấy tiếc bác ạ! Cố thêm chủ đề này nữa thôi ạ!
 
Upvote 0
Bạn mở miệng ra nghe "dữ liệu khủng", đóng miệng lại cũng "dữ liệu khủng". Thì đáng lẽ với mục đích ấy, bạn phải mở mắt ra mà tìm hiểu các công cụ chuyên về dữ liệu khủng.
Kiểu của thớt là gánh nước tưới vườn rau bằng lọ bixilin rồi anh. :-p
 
Upvote 0
Giờ quay sang cái khác thấy tiếc bác ạ! Cố thêm chủ đề này nữa thôi ạ!
Đã nói là mớ kiến thức VBA của bạn đem bỏ đi chả có gì để tiếc cả. Các vấn đề của bạn đưa ra nào giờ toàn là những vấn đề có thể giải quyết được với tầm nhìn xa. Do bạn tự chọn VBA để giới hạn tầm của mình. Có lẽ là do nhờ code ở GPE dễ quá cho nên nhiều người đâm tính ỷ lại.
Không biết dứt khoát với cái dây dưa thì nó sẽ bám chân mình mãi, khó mà tiến.
 
Upvote 0
Kiểu của thớt là gánh nước tưới vườn rau bằng lọ bixilin rồi anh. :p
Chạy được Marco có trong trang tính khác, tại file đang mở được bác ạ!Vấn đề vẫn phải mở cả 2 file nên.
Đã nói là mớ kiến thức VBA của bạn đem bỏ đi chả có gì để tiếc cả. Các vấn đề của bạn đưa ra nào giờ toàn là những vấn đề có thể giải quyết được với tầm nhìn xa. Do bạn tự chọn VBA để giới hạn tầm của mình. Có lẽ là do nhờ code ở GPE dễ quá cho nên nhiều người đâm tính ỷ lại.
Không biết dứt khoát với cái dây dưa thì nó sẽ bám chân mình mãi, khó mà tiến.
PHP:
Sub chay_marco_file_khacdangmo()

Dim WorkbookName As String
Dim MacroName As String
WorkbookName = "dang_dong.xlsm"
MacroName = "run_sheet1"

Run "'" & WorkbookName & "'!" & MacroName

End Sub
Code này chạy được, các bác xem chế thêm được không cho trường hợp marco file đang đóng!
Bác @Maika8008 ới xem qua cho em chút!
 
Lần chỉnh sửa cuối:
Upvote 0
Chạy được Marco có trong trang tính khác, tại file đang mở được bác ạ!Vấn đề vẫn phải mở cả 2 file nên.

PHP:
Sub chay_marco_file_khacdangmo()

Dim WorkbookName As String
Dim MacroName As String
WorkbookName = "dang_dong.xlsm"
MacroName = "run_sheet1"

Run "'" & WorkbookName & "'!" & MacroName

End Sub
Code này chạy được, các bác xem chế thêm được không cho trường hợp marco file đang đóng!
Bác @Maika8008 ới xem qua cho em chút!
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?
 
Upvote 0
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?
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
 
Upvote 0
Lời khuyên sau là tốt
Bạn muốn làm gì thì cứ code từ file đang mở.
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 đó.
 
Upvote 0
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
Chế 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)
 
Lần chỉnh sửa cuối:
Upvote 0
Có hai cách để dùng lại các code. Rất hữu hiệu và giản dị.

1. Cách của dân chuyên lập trình: chép chúng vào thư viện, và import thư viện ấy vào project của mình khi cần.

2. Cách giản dị: cho mớ code đó vào file Personal.xlsb
 
Upvote 0
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 đó.
Vâng! Chung quy là gọi được Run được Marco file khác là đạt yêu cầu bác ạ!
Nhưng còn thiếu đoạn code mở file đó nên và đóng lại sau khi làm xong. Code được như này là tối đa và hiệu quả rồi!Vì nó đóng và mở tự động mình chỉ mở file có Marco gọi các Sub file khác là được!
Chế rồi đó. Bạn trích mà không hiểu tôi đã chế cho bạn rồi sao?
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!
 
Upvote 0
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!
Đó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ả.
 
Upvote 0
Chế 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)
Nhiều bài mừng quá mà không F5 không thấy bài mới của bác
PHP:
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
Em chế xong vẫn lỗi bác ạ!
 
Lần chỉnh sửa cuối:
Upvote 0
Đó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ả.
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.
 
Upvote 0
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.
Bác bỏ quá cho!
Các bác giúp cho code bài 27 em chạy nó báo lỗi ạ!
 
Upvote 0
Nhiều bài mừng quá mà không F5 không thấy bài mới của 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
Em chế xong vẫn lỗi bác ạ!
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à.
P/S: chỗ Open("Đường dẫn\dang_dong.xlsm")
 
Upvote 0
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à.
P/S: chỗ Open("Đường dẫn\dang_dong.xlsm")
Lỗi dòng này đây ạ!Bác sửa giúp em với!
111.jpg
 
Upvote 0
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
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
 
Lần chỉnh sửa cuối:
Upvote 0
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
Tôi thử trên 1 cặp file của tôi thì code hoạt động tốt.
 
Upvote 0
Tôi thử trên 1 cặp file của tôi thì code hoạt động 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?
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
'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!
 
Lần chỉnh sửa cuối:
Upvote 0
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?
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
'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!
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 Ở TRONG ĐÓ xong rồi đóng mà không lưu?
 
Upvote 0
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?
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!
 
Upvote 0
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!
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.

P/S: hèn chi bảo code không chạy. Nó chạy xong rồi đóng và không lưu thì khi mở lại làm sao thấy file thay đổi được.
 
Lần chỉnh sửa cuối:
Upvote 0
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.
Đã ok VBA cũng gớm phết ấy chứ.Chạy ngon rồi hihi cảm ơn bác @Maika8008
PHP:
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
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu chủ thớt chạy theo vết thì sẽ thấy code này mở file "dang_dong" để chạy code trong "dang_dong", đúng theo gợi ý của tôi là file đang là của mình thì cứ mở ra mà chạy code.

Coi rằng "ngon" cũng được.

Chú ý các câu lệnh trong code trên được trích như sau
Mã:
10    CloseIt = True
20    Application.Run (wbTarget.Name & "!run_sheet1")
30    If CloseIt = True Then ...
dường như vô nghĩa: biến CloseIt có thay đổi gì đâu khi chạy câu lệnh 20. Nên ở dòng 30 , lệnh If luôn chạy lệnh sau Then.

Thêm nữa, câu lệnh 30 chỉ cần viết
Mã:
30    If CloseIt Then ...
 
Upvote 0
Nếu chủ thớt chạy theo vết thì sẽ thấy code này mở file "dang_dong" để chạy code trong "dang_dong", đúng theo gợi ý của tôi là file đang là của mình thì cứ mở ra mà chạy code.

Coi rằng "ngon" cũng được.

Chú ý các câu lệnh trong code trên được trích như sau
Mã:
10    CloseIt = True
20    Application.Run (wbTarget.Name & "!run_sheet1")
30    If CloseIt = True Then ...
dường như vô nghĩa: biến CloseIt có thay đổi gì đâu khi chạy câu lệnh 20. Nên ở dòng 30 , lệnh If luôn chạy lệnh sau Then.

Thêm nữa, câu lệnh 30 chỉ cần viết
Mã:
30    If CloseIt Then ...
Vâng bác!
Code bài 39 sẽ hữu ích trong trường hợp dữ liệu quá lớn mà buộc phải tách nhỏ ra để giảm dung lượng phải không ạ!
 
Upvote 0
Rõ ràng viết If closeIt = True then... thì 20 năm sau đọc phát hiểu ngay.
If x Then
Khong hẳn 100% tương đương với
If x = true
VBA theo luật cũ xưa (trước 70's), xét lô gic của lệnh If theo 0 và <>0
Trong câu lệnh thứ nhất, VBA chỉ xét xem x có khác 0
Trong câu lệnh thứ hai, VBA sẽ ép kiểu x hoặc True để có thể so sánh với nhau. Nếu x là integer thì True sẽ ép thành -1.

Chú cho người viết cái code mở file trên :
Theo tôi đọc thì code ấy tự động đóng và save file vô điều kiện. Nếu file ấy đang chỉnh sửa thì ô là la :p. Thớt chưa thấy quan tài nên chưa đổ lệ.
 
Upvote 0
If x Then
Khong hẳn 100% tương đương với
If x = true
VBA theo luật cũ xưa (trước 70's), xét lô gic của lệnh If theo 0 và <>0
Trong câu lệnh thứ nhất, VBA chỉ xét xem x có khác 0
Trong câu lệnh thứ hai, VBA sẽ ép kiểu x hoặc True để có thể so sánh với nhau. Nếu x là integer thì True sẽ ép thành -1.

Chú cho người viết cái code mở file trên :
Theo tôi đọc thì code ấy tự động đóng và save file vô điều kiện. Nếu file ấy đang chỉnh sửa thì ô là la :p. Thớt chưa thấy quan tài nên chưa đổ lệ.
Những cái bác bổ sung rất "bổ". Do file xài một mình nên chỉ code vậy cũng được phải không ạ
 
Upvote 0
Những cái bác bổ sung rất "bổ". Do file xài một mình nên chỉ code vậy cũng được phải không ạ
Code không phải của tôi . Tôi chỉ phê đến thế thôi.
Nếu bạn hỏi câu ấy thì bạn chỉ nói "bổ" cho có lệ chứ bạn chả hiểu tôi nói gì.
Những gì tôi nói là thuộc về kinh nghiệm lập trình. Tôi nêu ra những hầm hố cần tránh. Nhưng nếu tự tin mình mắt 20/20 dò đường cẩn thận thì cần gì phải biết trước những đoạn đường hầm hố.
 
Upvote 0
Code không phải của tôi . Tôi chỉ phê đến thế thôi.
Nếu bạn hỏi câu ấy thì bạn chỉ nói "bổ" cho có lệ chứ bạn chả hiểu tôi nói gì.
Những gì tôi nói là thuộc về kinh nghiệm lập trình. Tôi nêu ra những hầm hố cần tránh. Nhưng nếu tự tin mình mắt 20/20 dò đường cẩn thận thì cần gì phải biết trước những đoạn đường hầm hố.
Bổ chỗ bác dẫn ra câu lệnh "If x Then" ấy bác, gặp nhiều dạng "If x Then" đến câu dẫn của bác giờ mới hiểu ra là nó mặc định True nếu ép kiểu là Boolean, mặc định là = -1 nếu ép kiểu là Integer thay vì mình phải "If x = True(-1) Then..."
 
Upvote 0
Bổ chỗ bác dẫn ra câu lệnh "If x Then" ấy bác, gặp nhiều dạng "If x Then" đến câu dẫn của bác giờ mới hiểu ra là nó mặc định True nếu ép kiểu là Boolean, mặc định là = -1 nếu ép kiểu là Integer thay vì mình phải "If x = True(-1) Then..."
Có hiểu đúng đâu.

Bạn khai báo rõ ràng là Boolean rồi, còn ép đi đâu nữa?

1623308839711.png
 
Upvote 0
Upvote 0
Em có gặp một số câu If x Then... đến câu dẫn của bác @VetMini mới hiểu, chứ phải nói code trong Top này bác!
Cách viết tắt đó là đối chiếu với giá trị mặc định của biến, nếu khác thì thỏa.
Tùy theo biến đó được khai báo theo kiểu dữ liệu nào: Number, string, boolean, object... thì có giá trị mặc định tương ứng.
Và việc nhớ giá trị mặc định của mỗi kiểu dữ liệu tốn não, vậy nên viết luôn nó đối chiếu với giá trị nào thì đọc phát hiểu ngay.
 
Upvote 0
Cách viết tắt đó là đối chiếu với giá trị mặc định của biến, nếu khác thì thỏa.
Tùy theo biến đó được khai báo theo kiểu dữ liệu nào: Number, string, boolean, object... thì có giá trị mặc định tương ứng.
Và việc nhớ giá trị mặc định của mỗi kiểu dữ liệu tốn não, vậy nên viết luôn nó đối chiếu với giá trị nào thì đọc phát hiểu ngay.
Vâng bác. Em hay đi ăn mót các code nên em cũng hay gặp kiểu viết tắt mà không hiểu tại sao lại thế.
 
Upvote 0
Cảm ơn bác cho hướng làm ạ. Cảm ơn bác @haog . Xin bác cho thêm "chữ" ạ.

- Vẫn là do dữ liệu quá lớn phải chia nhỏ ra nhiều file. Mỗi file như vậy cũng có các Sub phải chạy để có dữ liệu( file đính kèm là ví dụ vài Sub, nếu chạy được thì kết luận chạy nhiều sub được) rồi chuyển về file đang mở.
- Vấn đề này với em mới mẻ mà quá là khó. Nếu không chạy được các sub ở file đóng thì sức lực bào mòn (mỗi lần mở máy tính rất ngán, do nhiều file quá) và cảm giác mênh mông quá.
- Thực ra em không biết VBA có thể có làm được việc này không và lần nữa cầu may có bác nào từng làm qua thì xin phần code này.
Xin trợ giúp ạ.
Đang đóng với chả đang mở gì bạn, dữ liệu quá lớn và không có thạo VBA thì coi sử dụng Power Query hay Power Bi đi. Nó thiết kế nhằm hỗ trợ cho người chả thạo lập trình gì, dữ liệu lớn mà cứ bám vào VBA làm gì.
 
Upvote 0
Đang đóng với chả đang mở gì bạn, dữ liệu quá lớn và không có thạo VBA thì coi sử dụng Power Query hay Power Bi đi. Nó thiết kế nhằm hỗ trợ cho người chả thạo lập trình gì, dữ liệu lớn mà cứ bám vào VBA làm gì.
100G dữ liệu nhồi vào 1 file trong Power Query hay Power Bi được à bạn?
 
Upvote 0
Tôi có viết
Chú ý các câu lệnh trong code trên được trích như sau
Mã:
10    CloseIt = True
20    Application.Run (wbTarget.Name & "!run_sheet1")
30      If CloseIt = True Then ...
dường như vô nghĩa: biến CloseIt có thay đổi gì đâu khi chạy câu lệnh 20. Nên ở dòng 30 , lệnh If luôn chạy lệnh sau Then.

Trích dẫn cho đủ là
Mã:
10    CloseIt = True
    'On Error GoTo 0
20    Application.Run (wbTarget.Name & "!run_sheet1") 'run_sheet1 là tên Marco của cần chạy của file đóng
30    If CloseIt = True Then
40        wbTarget.Close savechanges:=True
50    Else
60        ThisWorkbook.Activate
70    End If
Tức là lệnh Application.Run (wbTarget.Name & "!run_sheet1") không hề có tác động gì làm thay đổi biến CloseIt (luôn =True). Cho nên các lệnh từ 30 đến 70 chỉ là lệnh 40 mà thôi.
 
Upvote 0
100G dữ liệu nhồi vào 1 file trong Power Query hay Power Bi được à bạn?
Tôi chưa từng xử lý nhiều dữ liệu như vậy, vì 100gb nó có tương đương với hàng tỷ dòng dữ liệu rồi. Tôi từng nạp dữ liệu gần 10gb, tuy nhiên refresh nó quả thực là vấn đề không nhỏ . Theo ý kiến chủ quan của tôi thì 100gb bản power bi premium có thể chơi được. Dữ liệu lớn như vậy mà bạn chạy excel với VBA tôi thấy hơi ngạc nhiên.
 
Upvote 0
Tôi chưa từng xử lý nhiều dữ liệu như vậy, vì 100gb nó có tương đương với hàng tỷ dòng dữ liệu rồi. Tôi từng nạp dữ liệu gần 10gb, tuy nhiên refresh nó quả thực là vấn đề không nhỏ . Theo ý kiến chủ quan của tôi thì 100gb bản power bi premium có thể chơi được. Dữ liệu lớn như vậy mà bạn chạy excel với VBA tôi thấy hơi ngạc nhiên.
Của mình thì khoảng 100.000.000 (100 triệu dòng). Các file của mình chia ra dưới 200M thì thấy khi chạy code không đơ lâu lắm. Vẫn muốn sử dụng VBA vì dễ code để tính toán trên các file. Giờ mình có code của top này cũng không vất vả quá để chạy code.
Ý định của mình hoàn thiện quy trình tính bằng VBA sau đó học qua ngôn ngữ Python. Mình biết dữ liệu lớn VBA nó ì ạch nhưng code cho việc tính toán dễ dàng.
 
Upvote 0
Của mình thì khoảng 100.000.000 (100 triệu dòng). Các file của mình chia ra dưới 200M thì thấy khi chạy code không đơ lâu lắm. Vẫn muốn sử dụng VBA vì dễ code để tính toán trên các file. Giờ mình có code của top này cũng không vất vả quá để chạy code.
Ý định của mình hoàn thiện quy trình tính bằng VBA sau đó học qua ngôn ngữ Python. Mình biết dữ liệu lớn VBA nó ì ạch nhưng code cho việc tính toán dễ dàng.
100tr dòng thì làm gì đến 100gb bạn. 100tr dòng thì cùng lắm 10gb và power bi bản free hoặc bản pro nó chạy trong một nốt nhạc, cần gì mà phải tách cho mất công. Power bi có thể kết hợp với R hay Python nhé!
 
Upvote 0
100tr dòng thì làm gì đến 100gb bạn. 100tr dòng thì cùng lắm 10gb và power bi bản free hoặc bản pro nó chạy trong một nốt nhạc, cần gì mà phải tách cho mất công. Power bi có thể kết hợp với R hay Python nhé!
Dòng x cột mới ra được dung lượng file. Cụ thể 1 file của mình hơn 20 triệu cell. Chắc mình dung luôn Python sợ sức học không cho phép học nhiều ngôn ngữ hay công cụ được.
 
Lần chỉnh sửa cuối:
Upvote 0
100tr dòng thì làm gì đến 100gb bạn. 100tr dòng thì cùng lắm 10gb và power bi bản free hoặc bản pro nó chạy trong một nốt nhạc, cần gì mà phải tách cho mất công. Power bi có thể kết hợp với R hay Python nhé!
Cỡ có thể phân tích hàng chục triệu mẩu dữ liệu là bậc thầy của tôi rồi. Bạn lý luận chi cho tổn hơi.
Vả lại:
1. Khi người ta vào GPE là đã có định kiến "VBA số một" rồi, khó mà thay đổi.
2. VBA mới có người code cho a đến z chứ mấy ngón khác bắt buộc phải làm, chỉ hỏi được chỗ bí.
 
Upvote 0

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

Back
Top Bottom