vấn đề này dùng mảng có được không nhỉ?

Liên hệ QC

ttranhnn

Thành viên mới
Tham gia
20/1/10
Bài viết
25
Được thích
1
Các bác cho em hỏi, em có một số tập tin dữ liệu, ví dụ CTNA,CTBT,CTCL,DTNA,DTPQ....em viết macro xử lý riêng cho từng tập tin, nhưng khi chạy nó báo lỗi procedure too large, giờ em muốn thay vì xử lý riêng từng tập tin, em có thể gán cho tên file là một mảng sau đó dùng vòng lặp để thu gọn lại được không nhỉ?
 
mình chạy macro vonglap trong file tong hop gstx toan dia ban ban a, bạn sửa hộ mình chỗ sai với, thanks bạn
 
Upvote 0
ok mình đã qua được lỗi trên nhưng lại gặp lỗi script out of range ở dòng
Windows("Fname(i).xls").Activate
có lẽ do mình chưa biết cách dùng mảng nhờ bạn giúp với. Thanks
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn sửa câu lệnh đó thành:

Windows(Fname(i)).Activate
...
Và câu lệnh:

Name "C:\Tong hop toan dia ban\Fname(i).xls" As "C:\Tong hop toan dia ban\data.xls"
Thành

Name ThisWorkbook.Path & "\" & Fname(i) As ThisWorkbook.Path & "\Data.xls"
Nhưng câu lệnh này không thực hiện được vì file đang mở không Rename được

Mình đã lưu ý bạn việc kết hợp giữa chuỗi và biến mà.
 
Lần chỉnh sửa cuối:
Upvote 0
mình sửa được rồi work ngon rồi, thanks bạn nhiều nha, giờ mình thử làm theo ý tưởng của bạn, copy dữ liệu vào sheet data trong Tao cdkt
 
Upvote 0
mình thử làm theo cách của bạn, tạo sheet data trong file tao cdkt nhưng khi copy từ file gốc vào thì nó lại tạo ra 1 work book mới và ko copy được vào sheet data là sao nhỉ, nó báo lỗi ở đoạn mình in đậm ? Bạn xem hộ mình với
Sub copypvaodata()
Dim Fname(), i, pat, ten As String
Fname = Array("ACBNA.xls", "DDNA.xls", "KTNA.xls")
For i = 0 To UBound(Fname)
Application.Workbooks.Open ThisWorkbook.Path & "\" & Fname(i)
ActiveSheet.Unprotect
Rows("1:1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
pat = ThisWorkbook.Path
ten = Replace(Fname(i), ".xls", "")
Windows("Tong hop du lieu gstx toan dia ban.xls").Activate
Sheets("Tong hop toan dia ban").Select
Range("A1").Select
Selection.Copy
Windows(Fname(i)).Activate
Columns("A:J").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
Range("A1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = ten
With ActiveCell.Characters(Start:=1, Length:=4).Font
.name = "Microsoft Sans Serif"
.FontStyle = "Regular"
.Size = 8.25
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
ActiveSheet.Copy
Application.Workbooks.Open "C:\Tong hop toan dia ban\Tao cd ktoan ver1.0.xls"
Sheets("data").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

ActiveWorkbook.Save
ActiveWindow.Close
Windows(Fname(i)).Activate
ActiveWorkbook.Save
ActiveWindow.Close
Next
End Sub
 

File đính kèm

Upvote 0
Hi hi!!! Nếu bạn không tuân thủ quy trình lật mở trang như mình đã viết thì nó sẽ tạo Book1, Book2... và chép vào đấy ngay. Mình cũng bị dính khi viết code, nhưng đoạn code của mình đã Test tránh lỗi đó rồi, bạn kiểm tra lại nha.
 
Upvote 0
mình vẫn làm theo trình tự của bạn, mở 2 file tong hop du lieu gstx.xls và tao cdkt sau đó mở file của từng đơn vị, unprotect, chuyển từ kiểu text sang kiểu số insert thêm tên của đơn vị ở dòng đầu tiên và copy vào sheet data nhưng đến đoạn copy vào sheet data nó lại copy vào book 1, book 2 và báo lỗi, bạn sửa giúp mình với. Thanks
 
Upvote 0
sau 1 buổi chiều mày mò cuối cùng nó cũng đã work, thanks bạn Sealand nhìu nhìu nha
 
Upvote 0
sao em làm bảng tổng hợp bằng pivot nhưng khi bấm refresh data dữ liệu không thay đổi.Xin các cao thủ ra tay giúp đỡ vì em không rành excel lắm.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn refresh nó có 2 vấn đề phải cập nhật:
1/Dữ liệu trông vùng dữ liệu mà Pivot Table đã xác nhận: Cái này OK vì nó sẽ chắc chắn cập nhật.
2/Dữ liệu trong vùng thêm mới, đây là cái đáng nói. Mỗi Pivot T. có 1 vùng Data nhất định, khi cập nhật người ta thường nới rộng vùng data bao hết vùng dữ liệu. Để Pivot tự động thì ta nên đặt Name động cho vùng data này.Mỗi khi thêm dữ liệu thì vùng Data sẽ tự động mở rộng tương ứng.
 
Upvote 0
Web KT

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

Back
Top Bottom