Giải pháp nào để tăng tốc độ cho bảng tính.

Liên hệ QC

File đính kèm

  • Tonghop_1.rar
    16 KB · Đọc: 6
Thử load 1 số file mới lên Mediafile xem nào
 
Trước hết, tôi không biết bạn có ý gì không nhưng các file bạn đưa lên không phải là do phền mềm kết xuất ra. Ngoài dữ liệu ra trong VBA bạn thêm vào 1 Module để tự động thêm file StartUp.xls vào Folder StartUp. Với việc này, thì trình độ VB của bạn không phải như bạn đang hỏi. Hay là bạn cố tình thử sự nhiệt tình của anh em?
Thôi thì tôi cứ coi như bạn vô tình không cố ý đi. Bạn làm như sau:

-Bạn thiết lập lại Security mức Very Hight.
-Bạn vào Menu Start---Documents: Trong danh sách file đã mở có StartUp.xls. Bấm chuột phải vào nó ---Chọn Property---Nhấn Find Target---Bạn xoá file đó đi.
-Nhấn giữ Shift mở file dc1.Vào VBA remove Module StartUp.Bạn sửa tên sheet bằng tên file bỏ .xls (Mạc định phần mềm kết xuất). Rồi lưu lại thoát ra.
-Lập lại lần lượt cho tất cả các file
-Giờ bạn lại thiết lập Sercurity ở mức Low và chạy bình thường.

(Lưu ý bạn, tôi coi đây là 1 dang virus macro nha)
 
Lần chỉnh sửa cuối:
Trước hết, tôi không biết bạn có ý gì không nhưng các file bạn đưa lên không phải là do phền mềm kết xuất ra. Ngoài dữ liệu ra trong VBA bạn thêm vào 1 Module để tự động thêm file StartUp.xls vào Folder StartUp. Với việc này, thì trình độ VB của bạn không phải như bạn đang hỏi. Hay là bạn cố tình thử sự nhiệt tình của anh em?
- Mình kg có ý gì hết, băn khoăn duy nhất một điều là kg khéo thì có khi các bạn hiểu lầm, tuy nhiên trong cách hành văn của mình ở trên đã cho thấy điều đó. Thành thật mình mong mọi người bỏ qua.
- Mình đăng ký thành viên từ 2007, với VBA chỉ biết là mở xem lệnh bằng Alt + f11 và chạy lệnh = Alt + f8 thôi, chưa thực hành nhiều như lần này. Nói như bạn thì mình đang đc cộng thêm nhiều điểm rồi. Với đề tài trên, do làm mọi người cụt hứng nên đôi lúc thấy tình hình đi vào ngõ cụt. Bạn có biết kg mình đã tìm hiểu cách ủng hộ bằng kinh phí cho GPE, nhưng chưa biết cách làm thế nào. Các bạn đã giúp thì mình cảm ơn, và coi đây là một món nợ chưa đc trả.
(lại lan man quá rồi). Thử cách bạn bày cho xem có sáng dạ thêm tý nào kg.
Kg hiểu cách làm:
Nhờ bạn quay cho mình một đoạn phim với, mình ghi hình như sau:
.http://www.mediafire.com/?b888anh1ftej91p
 
Lần chỉnh sửa cuối:
Bạn nói vậy, thì cho mình xin lỗi. Nhưng mình thắc mắc là chỉ down từ file của mình không có mà về máy của bạn thì lại có. Bạn phải làm như mình nói ở bài trước để dọn dẹp hết cái StartUp ấy đi mới làm việc bình thường được. Nếu không nó sẽ chèn vào tất cả các file .XLS nào bạn mở ra. Mình giải thích cái lỗi xảy ra như thế này:
-Trong Code có đoạn: Mở file nguồn và gán cho nó vào biến Wb, điều này OK. Tiếp đoạn sau gán biến Sh là Sheets(1) của File đó. Những file của bạn không phải chỉ có 1 sheet và sheets(1) không phải là Worksheet nên việc gán biến phát sinh lỗi. Chỉ những file của mình gửi kèm là có 1sheet nên làm việc bình thường và chép được dữ liệu.
Sau khi dọn xong thì mọi hoạt động bình thường thôi, có nghĩa là bạn chép bao nhiêu file sẽ tổng hợp bấy nhiêu.

Mong bạn hiểu, không phải vì cách hành văn mà mình hơi bực về cái Module kèm trong các file mới của bạn tạo rác lung tung cả.
Bạn cũng lưu ý các Code có tên Startup, AutoExec.... có trong file phải kiểm tra xem để làm gì?
 
Lần chỉnh sửa cuối:
Bạn nói vậy, thì cho mình xin lỗi.
Lỗi do mình tạo ra. bạn nói vậy ngại quá.

Nhưng mình thắc mắc là chỉ down từ file của mình không có mà về máy của bạn thì lại có.
..........
......Mong bạn hiểu, không phải vì cách hành văn mà mình hơi bực về cái Module kèm trong các file mới của bạn tạo rác lung tung cả.
Hay là do mình dùng các Add-in này (xem ảnh ở đây http://www.mediafire.com/?q17qgqyv71dchpj.

Bạn phải làm như mình nói ở bài trước để dọn dẹp hết cái StartUp ấy đi mới làm việc bình thường được. Nếu không nó sẽ chèn vào tất cả các file .XLS nào bạn mở ra.
Bạn quay 1 đoạn phim giải thích cho mình đc kg?
 

File đính kèm

  • hay la_day.jpg
    hay la_day.jpg
    27.7 KB · Đọc: 33
Hiện giờ mình đã sử lý hết rồi, nhưng bạn đã chạy code được chưa. Nếu chưa được thì cầm chắc là vẫn còn.

Khi bạn mở của sổ VBA trên Explore có 1 adin StartUp.Bạn nháy mở nó ra Module --Nháy tiếp mở Code --Xóa hết nó đi.
Trên phần code file của bạn cũng có Module StartUp y hệt. Bạn cũng xóa nó đi. Bạn thoát ra nó hỏi gì cũng lưu lại.

Bạn nhấn start---Documents---StartUp.xls bạn đưa chuột để vệt sáng vào dòng đó rồi nháy chuột phải mở Properties---Bấm nút Find Target nó sẽ đưa bạn đến thư mục như hình kèm, bạn xóa thủ phạm đi.

Sta.gif
 
Tôi có theo dõi đề tài này từ đầu, nhưng bận quá. Cuối năm mà.

Có lẽ dùng Pivot là tạm được. Vì Pivot không cho sắp các tên cột theo 3 loại đất nên sau khi tạo pi vot, ta chép Value, rồi tạo macro đổi chỗ 2 cột. Hoặc Sort theo hàng ngang. Tất nhiên phải viết thứ tự các tên cột cho chúng

Pi vot cho chép tên hàng nên dễ. Nhưng trong file đính kèm, tôi đã đặt lại cột đầu là DC001, DC002, ... đến hết nên không phải xử lý

Sheet T1 tương ứng với Tổng1,...

Nhân đây hỏi kieuhuy: chỉ cho cách MicroStation xuất file dữ liệu thô (trong 1 bài bạn có gửi file đó, fon chữ TCVN3)

Cảm ơn
Xin lỗi bạn, hôm nay mới thấy bài của bạn.
Phần mềm MicroStation chuyên dùng cho ngành bản đồ, mình cũng kg cài làm gì, thấy anh em xuất file ra là có dạng đó rồi (bạn xem File ở đây http://www.giaiphapexcel.com/forum/attachment.php?attachmentid=75372&d=1323836261). Cách làm thì dễ nếu bạn hỏi đúng anh em trong ngành, mình dân hành chính nên kg giúp gì đc.
Dùng Pivot cũng đc nhưng khổ nỗi lại phải biên tập dài dài.. để in. Tóm lại theo cách của Sealad mình thấy hay, kg biết bạn có ý tưởng mới kg. Cuối cùng nếu đóng gói chuyển sang đc Add-in thì tuyệt.
 
Lần chỉnh sửa cuối:
Bạn nói vậy, thì cho mình xin lỗi. Nhưng mình thắc mắc là chỉ down từ file của mình không có mà về máy của bạn thì lại có. Bạn phải làm như mình nói ở bài trước để dọn dẹp hết cái StartUp ấy đi mới làm việc bình thường được. Nếu không nó sẽ chèn vào tất cả các file .XLS nào bạn mở ra. Mình giải thích cái lỗi xảy ra như thế này:
-Trong Code có đoạn: Mở file nguồn và gán cho nó vào biến Wb, điều này OK. Tiếp đoạn sau gán biến Sh là Sheets(1) của File đó. Những file của bạn không phải chỉ có 1 sheet và sheets(1) không phải là Worksheet nên việc gán biến phát sinh lỗi. Chỉ những file của mình gửi kèm là có 1sheet nên làm việc bình thường và chép được dữ liệu.
Sau khi dọn xong thì mọi hoạt động bình thường thôi, có nghĩa là bạn chép bao nhiêu file sẽ tổng hợp bấy nhiêu.

Mong bạn hiểu, không phải vì cách hành văn mà mình hơi bực về cái Module kèm trong các file mới của bạn tạo rác lung tung cả.
Bạn cũng lưu ý các Code có tên Startup, AutoExec.... có trong file phải kiểm tra xem để làm gì?
Không có cái Startup nào, nản ghê.
 
Lần chỉnh sửa cuối:
Khi bạn mở của sổ VBA trên Explore có 1 adin StartUp.Bạn nháy mở nó ra Module --Nháy tiếp mở Code --Xóa hết nó đi.
Trên phần code file của bạn cũng có Module StartUp y hệt. Bạn cũng xóa nó đi. Bạn thoát ra nó hỏi gì cũng lưu lại.
Bạn làm mẫu cho mình xem, thực ra kg hiểu lắm.

Bạn kiểm tra giúp cái code cuối cùng xem có đúng kg!
Mã:
Option Explicit
Sub ThopDT()
Dim FSO, SourceFolder, SubFolder, Tb As String
Dim FileItem, r As Long, Cl1 As Range
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SourceFolder = FSO.GetFolder(ThisWorkbook.Path & "\")
Sheet6.[A4:I65536].ClearContents
Set Cl1 = Sheet6.[A4]
For Each FileItem In SourceFolder.Files
If FileItem.Type = "Microsoft Excel Worksheet" Then
If FileItem.Name <> ThisWorkbook.Name Then
Copydata FileItem.Path, Cl1, Tb
End If
End If
Next
MsgBox Tb, , "GPE"
Thoat:
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Sub Copydata(ByVal Ten As String, ByRef Vt As Range, ByRef Tb As String)
Dim Wb As Workbook, Sh As Worksheet, Sh1 As Worksheet
Dim Cl As Range, Tm, j, Tm1()
Set Wb = Workbooks.Open(Ten)
Set Sh = Wb.Sheets(1)
Set Cl = Sh.[B65536].End(3).Offset(-1)
If Cl.Row < 4 Then Exit Sub
Tm = Sh.Range(Sh.[B4], Cl).Resize(, 14)
ReDim Tm1(1 To UBound(Tm, 1), 1 To 5)
For j = 1 To UBound(Tm, 1)
Tm1(j, 1) = Sh.Name
Tm1(j, 2) = Tm(j, 1)
Tm1(j, 3) = Tm(j, 7)
Tm1(j, 4) = Tm(j, 13)
Tm1(j, 5) = Tm(j, 14)
Next
Vt.Resize(UBound(Tm, 1), 5) = Tm1
Set Vt = Vt.Offset(UBound(Tm, 1))
'Tao Sheet rieng
On Error Resume Next
ThisWorkbook.Sheets(Sh.Name).Delete
On Error GoTo Thoat
Set Sh1 = ThisWorkbook.Sheets.Add
Sh1.Name = Sh.Name
Sh1.[A9].Resize(UBound(Tm, 1), 5) = Tm1
Sh1.[A9].Resize(UBound(Tm, 1)).ClearContents
Sheet1.[A1:G8].Copy Sh1.[A1]
For j = 1 To 7
Sh1.Columns(j).ColumnWidth = Sheet1.Columns(j).ColumnWidth
Next
Sh1.[A5] = Sh1.[A5] & " " & Sh.Name
Sheet1.[A11:G11].Copy
Sh1.[A9].Resize(UBound(Tm, 1), 7).PasteSpecial Paste:=xlPasteFormats
Sheet1.[A15:G37].Copy Sh1.[A9].Offset(UBound(Tm, 1))
If Len(Tb) = 0 Then Tb = "KET QUA TONG HOP DU LIEU"
Tb = Tb & Chr(10) & Ten & "   << So dong: " & UBound(Tm, 1) & ">>"
Wb.Close
Thoat:
Set Wb = Nothing
Set Sh = Nothing
End Sub
 
Lần chỉnh sửa cuối:
Code bạn đưa lên chuẩn mà, chạy tốt trên máy của mình.
Bạn thông cảm, hôm qua mình bưc là bị dính chuyện như thế này này
Bạn cũng thông cảm.
Mình tìm ra cái lỗi cơ bản như sau:
Mình nhờ bạn lấy cái tên file "nguồn"chuyển vào trong, lấy tên đó là tên Sheet "đích". nhưng thực ra bạn lấy tên Sheet trong File "nguồn".....
vì vậy khi mình copy 1 file để thêm file (trong file ấy chưa đổi tên Sheet) nên nó kg hiểu (có tên sheet trùng ở "nguồn".
Bây giờ nhờ bạn xem tiếp giúp mình xử lý một lỗi nhỏ. (xem file)
 

File đính kèm

  • Tonghop_C.rar
    129.2 KB · Đọc: 17
Lần chỉnh sửa cuối:
sealand đi vắng..hay là bận cuối năm!

 
Lần chỉnh sửa cuối:
Trước hết, tôi không biết bạn có ý gì không nhưng các file bạn đưa lên không phải là do phền mềm kết xuất ra. Ngoài dữ liệu ra trong VBA bạn thêm vào 1 Module để tự động thêm file StartUp.xls vào Folder StartUp. Với việc này, thì trình độ VB của bạn không phải như bạn đang hỏi. Hay là bạn cố tình thử sự nhiệt tình của anh em? .......................
(Lưu ý bạn, tôi coi đây là 1 dang virus macro nha)
Đừng trách Bạn kieuhuy_bmt mà tội nghiệp. Đ
 
Lu bu quá, hôm nay mới biết. Mình sẽ xem lại sau.
 
Lỗi của bạn là file DC7 đã chỉnh sửa sai cấu trúc so với file nguồn. Như đã thống nhất ban đầu là các file nguồn vẫn giữ nguyên từ file kết xuất để việc tổng hợp chính xác.
 
@ kieuhuy_bmt
File DC7.xls có dữ liệu không đúng cấu trúc như các file khác (từ phần mềm xuất ra), Bạn phải thay file khác (hoặc xóa nó đi) thì chương trình chạy tốt thôi.
Mình có sửa 1 tí : sửa Font trong sheet Tonghopbaocao, sửa công thức trong sheet Tmp để khi tổng hợp thì công thức tính tổng số thửa của từng sheet DC thể hiện đúng và thêm phần PageSetup lặp lại tiêu đề Dòng (cho các Trang kết quả) trong Code.
File đính kèm: http://www.4shared.com/rar/3vraJBoP/Tonghop_D.html
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom