Chào bạn,Mh có một file exel cần tổng hợp dữ liệu từ các sheet nhỏ. Nếu dùng lệnh coppy thì đơn thuần mất thời gian. Mh cần tổng hợp dữ liệu từ 27 sheet nhỏ vào bảng tổng hợp chi tiết mà ko cần phải coppy -paste.
Mong mọi người giúp đỡ.
Sub GPE()
Dim Arr(1 To 79, 1 To 28), Darr(), i As Integer, j As Integer, Col As Integer
For j = 5 To 33
If j = 32 Then j = j + 1
If Sheets(j).Range("C8").Value = Sheets(4).Range("C9").Value Then
Darr = Sheets(j).Range("E8:E86").Value
Else
Darr = Sheets(j).Range("E9:E87").Value
End If
For i = 1 To UBound(Darr)
If j = 33 Then Col = j - 5 Else Col = j - 4
Arr(i, Col) = Darr(i, 1)
Next i
Next j
Sheets(4).Range("E9").Resize(79, 28) = Arr
End Sub
Mh có một file exel cần tổng hợp dữ liệu từ các sheet nhỏ. Nếu dùng lệnh coppy thì đơn thuần mất thời gian. Mh cần tổng hợp dữ liệu từ 27 sheet nhỏ vào bảng tổng hợp chi tiết mà ko cần phải coppy -paste.
Mong mọi người giúp đỡ.
chạy thử codeMã:Sub GPE() Dim Arr(1 To 79, 1 To 28), Darr(), i As Integer, j As Integer, Col As Integer For j = 5 To 33 If j = 32 Then j = j + 1 If Sheets(j).Range("C8").Value = Sheets(4).Range("C9").Value Then Darr = Sheets(j).Range("E8:E86").Value Else Darr = Sheets(j).Range("E9:E87").Value End If For i = 1 To UBound(Darr) If j = 33 Then Col = j - 5 Else Col = j - 4 Arr(i, Col) = Darr(i, 1) Next i Next j Sheets(4).Range("E9").Resize(79, 28) = Arr End Sub
nếu không biết về VBA thì bạn thiết kế lại file và dùng công thức theo hướng dẫn của bạn Befaintcảm ơn bạn, nhưng thực tế mh còn chưa biết vba, chưa biết cách để dán đoạn mã code và cho nó chạy thử, hik. Thưc tế trước công việc mh toàn dùng phần mềm, exel chỉ cần dùng căn bản, nay làm mảng này lại chủ yếu dùng exel, nên đang bắt đầu mò mẫm mà thấy khó quá, như ma trận. hok. Bạn có thể dạy mh để dán đoạn mã Code và làm sao để nó chạy thử đươc ko. hihi, nói người chưa biết gì cũng khổ bạn nhỉ
Lỗi đó là do trong file của bạn không có cái sheet nào tên BĐ Trung tâm (Ô E5). Vã lại tên sheet của bạn hầu như là thừa khoảng trắng phía sau, bạn xóa hết khoảng trắng thừa trong tên sheet và sửa công thức tại ô E6 như sau.bạn befaint ơi, mh cũng thử làm theo công thức của bạn cho một số sheet, tuy nhiên nó báo lỗi, bạn xem giúp mh lỗi là vì sao nhé, mh tìm ko ra nguyên nhân, cảm ơn các cao thủ nhiều lắm
=IFERROR(INDIRECT("'"&E$5&"'!E"&ROW($A6)),"")
bạn phải nhập tiêu đề cột và tên các sheet giống nhauhì, mh sẽ rút kinh nghiệm, để mh sẽ tạo lại và thử xem có được ko. còn cách làm như bạn befaint hướng dẫn mh vẫn chưa làm được, huuhu, sao dốt thế cơ chứ
Giữ lại file đó làm file mẫu... Chép dữ liệu vào các sheets của file đó rồi tính tiếp.bạn befaint ơi, mh cũng thử làm theo công thức của bạn cho một số sheet, tuy nhiên nó báo lỗi, bạn xem giúp mh lỗi là vì sao nhé, mh tìm ko ra nguyên nhân, cảm ơn các cao thủ nhiều lắm